注:本项目为v2,第一版参见:CrawlPage
针对知网专利,本代码由两部分组成: 第一部分是根据条件爬取符合条件的专利列表; 第二部分则是根据第一个部分得到的专利列表爬取具体的专利。 此为第一部分。 相关说明
- run_page.py 负责启动爬虫;
- 本爬虫使用了文件(checkpoint json格式文件)作为断点和队列;
- 当某一块爬取完成后,page爬虫检查队列是否有数据,有则设置断点,并开始爬取
- 知网的搜索条件是得到cookie,相同的搜索条件对应的cookie是相同的;当出现验证码的时候进行重新请求cookie即可(也可以进行识别)
run_page.py会开启爬虫 page.py爬虫会判断checkpoint中队列中的数据(主分类号、申请人),顺序爬取。 爬虫在每次抓取页面成功后,会保存页面并解析页面,它也会判断当前的页面的专利个数。
列表页命名 files/pending/中保存有待爬取的列表,以该列表的第一个元素为名称,文件名为页码(按照年份爬取的页面依次递增) 比如
[ { 'applicant': '东南大学' } ]
则以东南大学作为文件夹的名称
- 目前的爬虫仅仅能爬取6000个数据,多的数据可以根据不同的搜索条件进行爬取
- 错误twisted.internet.error.TimeoutError: User timeout caused connection failure
代理,会发送请求requests获取代理 设置cookie,会检测spider之前的cookie是否已经不可用,如果不可用,则重新发起请求获取 重写最大值重试次数中间件 功能只是添加了一个日志输出
JsonPipeline 用于把解析出来的数据保存到json文件中
SavePagePipeline 保存原始的页面