随笔分类 - 爬虫
摘要:1 user-agent 2 referer 3 cookie(cookie池,先访问一次) 4 频率限制(代理池,延迟) 5 js加密(扣出来,exjs模块指向) 6 css加密 7 验证码(打码平台),半手动 8 图片懒加载
阅读全文
摘要:一 介绍 原来scrapy的Scheduler维护的是本机的任务队列(存放Request对象及其回调函数等信息)+本机的去重队列(存放访问过的url地址) 所以实现分布式爬取的关键就是,找一台专门的主机上运行一个共享的队列比如Redis,然后重写Scrapy的Scheduler,让新的Schedul
阅读全文
摘要:scrapy自带去重策略: 参考:https://www.cnblogs.com/liuqingzheng/p/16005880.html 配置文件: DUPEFILTER_CLASS = 'scrapy.dupefilters.RFPDupeFilter' # 默认的去重规则帮我们去重,去重规则在
阅读全文
摘要:示例: def process_exception(self, request, exception, spider): # Called when a download handler or a process_request() # (from other downloader middlewa
阅读全文
摘要:# 当前爬虫用的selenium是同一个 1、在爬虫中初始化webdriver对象 import scrapy from selenium import webdriver class CnblogSpider(scrapy.Spider): name = 'cnblog' allowed_doma
阅读全文
摘要:middleware.py # 下载中间件 # middlewares.py -process_request:返回不同的对象,后续处理不同(加代理...) class CnblogsDownloaderMiddleware: @classmethod def from_crawler(cls, c
阅读全文
摘要:方法: - 在配置文件中进行相关的配置即可:(默认还有一套setting) #1 增加并发: 默认scrapy开启的并发线程为32个,可以适当进行增加。在settings配置文件中修改CONCURRENT_REQUESTS = 100值为100,并发设置成了为100。 #2 降低日志级别: 在运行s
阅读全文
摘要:示例: import scrapy from firstscrapy.items import CnblogsMysqlItem class CnblogsSpider(scrapy.Spider): name = 'cnblogs' allowed_domains = ['www.cnblogs.
阅读全文
摘要:1、爬取cnblogs首页文章,打印出标题和连接地址 spiders/cnblogs.py import scrapy class CnblogsSpider(scrapy.Spider): name = 'cnblogs' allowed_domains = ['www.cnblogs.com']
阅读全文
摘要:一 介绍(爬虫界的django) Scrapy一个开源和协作的框架,其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,使用它可以以快速、简单、可扩展的方式从网站中提取所需的数据。但目前Scrapy的用途十分广泛,可用于如数据挖掘、监测和自动化测试等领域,也可以应用在获取API所返回的数据(
阅读全文
摘要:爬取豆瓣top250电影:https://movie.douban.com/top250 from selenium import webdriver import time bro = webdriver.Chrome(executable_path='./chromedriver.exe') #
阅读全文
摘要:一 介绍 selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题 selenium本质是通过驱动浏览器,完全模拟浏览器的操作,比如跳转、输入、点击、下拉等,来拿到网页渲染之后的结果,可支持多种浏览器 from selenium
阅读全文
摘要:XPath 简介 XPath 是一门在 XML 文档中查找信息的语言。 # xpath: XPath 是一门在 XML 文档中查找信息的语言 # / :从根节点选取。 # // :不管位置,直接找 # /@属性名 # /text() # 会复制() xpath # pip3 install lxml
阅读全文
摘要:1、爬取三国演义http://www.shicimingju.com/book/sanguoyanyi.html 代码: import requests from bs4 import BeautifulSoup res = requests.get('https://www.shicimingju
阅读全文
摘要:# 1 验证码破解 图像处理 # 2 专业打码平台,破解验证码(收费) # 申请超级鹰,注册 # 登录,下载sdk(代码如下),填入用户名密码,软件id 将下载好的包中文件导入到项目 1、把py文件中的tab符号都替换掉,使用python3的话将prient改一下,再将用户名,密码,以及软件id输入
阅读全文
摘要:1、使用第三方(git clone下来) # github,下载免费代理池开源代码(建议读一下别人的代码) # https://github.com/jhao104/proxy_pool 2、运行起git clone的代理项目,安装必要依赖 # 项目根目录(pycharm终端) # pip3 ins
阅读全文
摘要:回顾: # 1 爬虫原理:发送请求 》解析 》入库 # 2 Http协议 -请求协议:请求首行(请求方法,请求版本号:1.1),请求头(客户端类型,referer,Connection: Keep-Alive,Cookie,自定制),请求体(编码格式:json,urlencoded,fromdata
阅读全文
摘要:一 介绍 #介绍:使用requests可以模拟浏览器的请求,比起之前用到的urllib,requests模块的api更加便捷(本质就是封装了urllib3) #注意:requests库发送请求将网页内容下载下来以后,并不会执行js代码,这需要我们自己分析目标站点然后发起新的request请求 #安装
阅读全文
摘要:爬虫介绍 # 介绍爬虫 2 urilib3(内置,不好用),requests--模拟发送http请求 3 Beautifulsoup解析,xpth解析 4 selenium模块,操作浏览器 5 Mongodb 6 反爬:代理池,cookie池,请求头中:user-agent,refer,js逆向 7
阅读全文