webster
webster copied to clipboard
希望爬虫支持的特性
- 设置
- 针对反爬虫
- user agent
- 禁用 Cookie
- 抓取页面的间隔
- ip池。检测ip被封时,可动态改。
- 爬取效率
- 重复的url不会爬。
- 分布式爬。
- 针对反爬虫
- 抓取页面前
- 支持回调。一般是做登录。
- 获得页面的响应后
- 探测页面编码。防止乱码。
- 支持回调。
- 提取页面数据
- 支持用 CSS 选择器和 xpath 来解析 HTML。
- 设置 Cookie。
- 能模拟用户操作。
- 能动态添加要爬取的页面。
-
针对反爬虫方面,ua 目前在consumer实例化时支持作为参数传入,如果不传的话默认是一个webster自己的标识性ua。
-
爬取效率方面,目前webster这个框架的初衷就是以框架层面解决爬虫程序的横向扩展问题,生产者生产任务,推入redis队列,消费者从队列中取任务并进行抓取。
-
关于回调,目前只支持页面响应后的回调,具体调用方式并非传入一个callback function作为参数,而是继承webster.consumer基类时,在子类里override一个父类方法。
-
编码问题,对于browser模式,由于底层依靠的是headless chromium,因此不用担心编码问题,而plain模式,如果有遇到编码的问题可以将case单独报issue。
-
提取页面数据,目前只支持css选择器, 暂不支持xpath
-
动态添加要爬取的页面,这个现在就是支持的, 你只要在消费者 抓取页面返回时的回调函数里再实例化一个生产者,并生产新任务推入队列就可以了。
以上是目前webser已支持了的特性,其余特性待后续版本中引入,感谢宝贵的建议,欢迎PR
version 1.4.1已经支持了 cookie,通过 自定义header功能方式可以使爬虫的抓取请求的http头里携带cookie或其他session相关字段,具体参考这里有 单测用例中大api调用