0


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

相信大家应该都写过爬虫,简单的爬虫只需要使用 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

使用

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

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

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

  1. from curl2py.curlParseTool import curlCmdGenPyScript
  2. curl_cmd = """curl 'http://www.shixi.com/search/index?key=python'
  3. -H 'Connection: keep-alive'
  4. -H 'Cache-Control: max-age=0'
  5. -H 'Upgrade-Insecure-Requests: 1'
  6. -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'
  7. -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'
  8. -H 'Referer: http://www.shixi.com/'
  9. -H 'Accept-Language: zh-CN,zh;q=0.9'
  10. -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'
  11. --compressed
  12. --insecure"""
  13. output = curlCmdGenPyScript(curl_cmd)
  14. print(output)

就是放到 curl_cmd 这里。

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

  1. import requests
  2. import json
  3. headers = {
  4. "Connection": "keep-alive",
  5. "Cache-Control": "max-age=0",
  6. "Upgrade-Insecure-Requests": "1",
  7. "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",
  8. "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",
  9. "Referer": "http://www.shixi.com/",
  10. "Accept-Language": "zh-CN,zh;q=0.9"
  11. }
  12. cookies = {
  13. "UM_distinctid": "17a50a2c8ea537-046c01e944e72f-6373267-100200-17a50a2c8eb4ff",
  14. "PHPSESSID": "rpprvtdrcrvt54fkr7msgcde17",
  15. "CNZZDATA1261027457": "1711789791-1624850487-https%253A%252F%252Fwww.baidu.com%252F%7C1627741311",
  16. "Hm_lvt_536f42de0bcce9241264ac5d50172db7": "1627741268",
  17. "Hm_lpvt_536f42de0bcce9241264ac5d50172db7": "1627741334"
  18. }
  19. params = {
  20. "key": "python"
  21. }
  22. res = requests.get(
  23. "http://www.shixi.com/search/index",
  24. params=params,
  25. headers=headers,
  26. cookies=cookies
  27. )
  28. print(res.text)

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

总结

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


本文转载自: https://blog.csdn.net/qq_42003636/article/details/129099929
版权归原作者 一枚务实的码农 所有, 如有侵权,请联系我们删除。

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

还没有评论