当前位置: 首页 > news >正文

拯救了大批爬虫程序员,因为一个简单的神器

相信大家应该都写过爬虫,简单的爬虫只需要使用 requests 即可。遇到复杂的爬虫,就需要在程序里面加上请求头和参数信息。类似这种:

我们一般的步骤是,先到浏览器的网络请求中找到我们需要的请求,然后将请求头和参数信息一项项复制到程序中:

每次都需要这样操作,比较麻烦,而且有时候还容易搞错。

今天给大家介绍一个神器,可以自动地将浏览器的请求头信息解析为我们爬虫需要的代码。

安装

首先,我们需要安装这个神器:

pip install filestools -U

也可以使用阿里云加速:

pip install filestools --index-url=http://mirrors.aliyun.com/pypi/simple -U

当然,如果你想下载最新版本,可以用下面命令:

pip install filestools --index-url https://pypi.org/simple/ -U

使用

这款神器的使用也很简单。

第一步是利用浏览器的功能从网络里面复制我们需要的请求头信息:

接着将复制的内容粘贴到我们的转换程序里面:

from curl2py.curlParseTool import curlCmdGenPyScriptcurl_cmd = """curl 'http://www.shixi.com/search/index?key=python'
-H 'Connection: keep-alive'
-H 'Cache-Control: max-age=0'
-H 'Upgrade-Insecure-Requests: 1'
-H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
-H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9'
-H 'Referer: http://www.shixi.com/'
-H 'Accept-Language: zh-CN,zh;q=0.9'
-H 'Cookie: UM_distinctid=17a50a2c8ea537-046c01e944e72f-6373267-100200-17a50a2c8eb4ff; PHPSESSID=rpprvtdrcrvt54fkr7msgcde17; CNZZDATA1261027457=1711789791-1624850487-https%253A%252F%252Fwww.baidu.com%252F%7C1627741311; Hm_lvt_536f42de0bcce9241264ac5d50172db7=1627741268; Hm_lpvt_536f42de0bcce9241264ac5d50172db7=1627741334'
--compressed
--insecure"""output = curlCmdGenPyScript(curl_cmd)
print(output)

就是放到 curl_cmd 这里。

最后运行程序,我们就可以在输出窗口获得代码如下:

import requests
import jsonheaders = {"Connection": "keep-alive","Cache-Control": "max-age=0","Upgrade-Insecure-Requests": "1","User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36","Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9","Referer": "http://www.shixi.com/","Accept-Language": "zh-CN,zh;q=0.9"
}
cookies = {"UM_distinctid": "17a50a2c8ea537-046c01e944e72f-6373267-100200-17a50a2c8eb4ff","PHPSESSID": "rpprvtdrcrvt54fkr7msgcde17","CNZZDATA1261027457": "1711789791-1624850487-https%253A%252F%252Fwww.baidu.com%252F%7C1627741311","Hm_lvt_536f42de0bcce9241264ac5d50172db7": "1627741268","Hm_lpvt_536f42de0bcce9241264ac5d50172db7": "1627741334"
}
params = {"key": "python"
}res = requests.get("http://www.shixi.com/search/index",params=params,headers=headers,cookies=cookies
)
print(res.text)

将这些代码根据需要复制到爬虫程序即可。

总结

这其实是一个很简单的程序,但是可以解决我们写代码过程中的一个痛点,提高我们写代码的效率。

http://www.lryc.cn/news/12625.html

相关文章:

  • 2023年美赛C题Wordle预测问题三、四建模及Python代码详细讲解
  • 相关性-回忆录(持续更新)
  • (必备技能)使用Python实现屏幕截图
  • 「数据仓库」怎么选择现代数据仓库?
  • 6.3 使用 Swagger 生成 Web API 文档
  • Day894.加锁规则的一些问题 -MySQL实战
  • 【Flutter入门到进阶】Dart进阶篇---Dart异步编程
  • 点云配准方法原理(NDT、ICP)
  • 大规模 IoT 边缘容器集群管理的几种架构-0-边缘容器及架构简介
  • 代码随想录算法训练营第45天动态规划 背包基础 1 2、 416. 分割等和子集
  • QT学习记录(六)类对象属性
  • Spring Cloud Alibaba从搭建到源码完整进阶教程
  • Spring Cloud Nacos实战(一)- 下载和安装
  • 深入理解设备像素比
  • Revisiting Distributed Synchronous SGD 带有Back-up机制的分布式同步SGD方法 论文精读
  • shiro CVE-2020-13933
  • 斐波那契数列(递归+迭代)
  • 2022黑马Redis跟学笔记.实战篇(六)
  • Linux-VMware常用设置(时间+网络)及网络连接激活失败解决方法-基础篇②
  • vue3学习总结1
  • SpringBoot统一功能处理
  • 2022年3月电子学会Python等级考试试卷(五级)答案解析
  • 【C++】智能指针
  • Seata架构篇 - AT模式
  • 加油站会员管理小程序实战开发教程12
  • 用腾讯云同步Obsidian笔记
  • 浅析C++指针与引用,栈传递的关系
  • 图解LeetCode——剑指 Offer 10- II. 青蛙跳台阶问题
  • 【Linux】用户分类+权限管理+umask+粘滞位说明
  • 【干货】如何打造HR无法拒绝的简历?测试开发大牛带手把手你写简历!