爬虫学习 第六天
note
回顾
问题
1.空气参数问题
2.代理速度慢
3.截图问题
分辨率
selenium
动作链
浏览器托管
规避检测
无头浏览器
phantomJS
谷歌无头
pyppteer
appnium:
基于手机app的自动化的模块
和爬虫之间的关联
模拟登陆
便捷的捕获到动态加载的数据
js解密
js混淆
对js核心代码进行加密
js逆向
将js代码转换成python代码
手动逆向
自动逆向:
PyExcelJS
scrapy框架
a. pip3 install wheel
b. 下载twisted http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted
c. 进入下载目录,执行 pip3 install Twisted?17.1.0?cp35?cp35m?win_amd64.whl
d. pip3 install pywin32
e. pip3 install scrapy
process_item中的return item:
手动get请求发送
yield scrapy.Request(url,callback)
url:指定好的请求的url
callback:callback指定的回调函数一定会被执行(数据解析)
post请求的发送:
yield scrapy.FormRequest(url,callback,formdata)
yield在scrapy中的使用
向管道提交item对象:yield item
手动请求发送:yield scrapy.Request(url,callback)
问题:如何将start_urls中的元素进行post请求的发送
重写start_requests方法
def start_requests(self):#父类方法
for url in self.start_urls:
发起get请求
yield scrapy.FormRequest(url=url,callback=self.parse,formdata)
scrapy的五大核心组件
引擎(Scrapy)
用来处理整个系统的数据流处理, 触发事务(框架核心)
调度器(Scheduler)
用来接受引擎发过来的请求, 压入队列中, 并在引擎再次请求的时候返回. 可以想像成一个URL(抓取网页的网址或者说是链接)的优先队列, 由它来决定下一个要抓取的网址是什么, 同时去除重复的网址
下载器(Downloader)
用于下载网页内容, 并将网页内容返回给蜘蛛(Scrapy下载器是建立在twisted这个高效的异步模型上的)
爬虫(Spiders)
爬虫是主要干活的, 用于从特定的网页中提取自己需要的信息, 即所谓的实体(Item)。用户也可以从中提取出链接,让Scrapy继续抓取下一个页面
项目管道(Pipeline)
负责处理爬虫从网页中抽取的实体,主要的功能是持久化实体、验证实体的有效性、清除不需要的信息。当页面被爬虫解析后,将被发送到项目管道,并经过几个特定的次序处理数据。
原文:https://www.cnblogs.com/bky20061005/p/12172575.html