python requests知网爬虫详解(高级搜索)

1.前言

本次程序主要使用requests抓取知网公开专利信息用于毕业论文,爬取过程中遇到很多反爬措施,非常不容易,希望给大家带来一些参考。

2.爬虫准备

(1)查找接口信息

使用requests库抓取数据,首先需要找到接口在哪里:先准备好我们需要的高级搜索条件,然后开打F12开发者模式,点击network,最后点击搜索就可以看到接口信息

(2)构造请求头和请求参数

构造好请求头和参数后请求可以得到所有数据的html代码

3.选择发明公开分类

查看接口后发现接口请求参数多了一个SearchSql,经查找发现这个参数再上述接口中的html代码中

接下来解析出来这个参数应用于公开发明分类接口请求

4.对公开发明分类第一页和其他多页请求构造参数

第一页请求参数中的IsSearch参数为ture ,其他页为false

第一页请求参数中的SearchSql参数为第三步中获取到的数据,第二页中的为第一页中获取到的Search SQL。

page初始值为1,后面page为第一页解析出数据量总和除以20(向上取整)循环得到

5.构造详细页面url得到数据

经过第4步可以得到所有专利得href链接,循环将https://kns.cnki.net/跟href拼接得到详情页url

该页面可以直接使用get请求,不加请求头也可以访问,为了保护国家网站,做好每次访问睡眠1秒

6.其他需要注意得反爬

在第四步访问15 页就会弹出验证码,解决方法为使用多个cookie,随机访问可跳过验证码,也可以提升抓取速度。

有些数据可能获取不到,这就需要你认真观察了

手打教程不易,还望三连支持一下,需要代码参考得可以点进去查找,或者私聊我

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pig_clear

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值