当前位置:   article > 正文

selenium自动获取cookies用于requests做接口请求爬虫_selenium如何获取cookie并注入request

selenium如何获取cookie并注入request

目录

一、思想

二、代码


         有关爬虫一些报错解决,或是爬虫工具的使用及其他问题的,可以看看我的爬虫专栏:博主_zkkkkkkkkkkkkk的爬虫专栏

一、思想

        selenium可以用来模拟用户操作的python第三方包,而requests则是用来做接口请求。两者一结合,可能在某些方面优于单个包的爬虫。在requests请求时,我们都知道requests是需要headers信息。所以自动获取cookies等headers里关键信息就至关重要,而selenium因为是打开一个浏览器模拟用户操作的特性,使它能够获取到它自己打开的页面cookies。我们使用这个cookies传入requests,然后再使用requests做爬虫即可。

二、代码

        下面一个简单例子来说明(可能有些网站页面是不支持这样的,具体可以自行测试下)

  1. from selenium import webdriver
  2. import requests
  3. # selenium启动并打开 http://tpi.zhonju.cn/ 页面
  4. chrome = webdriver.Chrome()
  5. chrome.get('http://tpi.zhonju.cn/')
  6. # 打印页面cookies信息 是一个dict类型的对象
  7. print(chrome.get_cookies())
  8. # cookies做拼接
  9. cookies_list = [item["name"] + "=" + item["value"] for item in chrome.get_cookies()]
  10. cookies = ';'.join(it for it in cookies_list)
  11. print(cookies)
  12. # 得到cookies后,即可使用requests来做接口爬虫
  13. headers = {
  14. 'Content-Type':'application/json;charset=UTF-8',
  15. 'Cookie':f'{cookies}',
  16. 'Connection':'keep-alive',
  17. 'Accept':'text/html,application/xhtml+xml,application/xml',
  18. 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36'
  19. }
  20. req = requests.get('http://xxx.com/',headers=headers)
  21. # 以文本输出请求结果
  22. print(req.text)
  23. # 以json输出(前提是接口返回结果是json或dict类型的)
  24. print(req.json)
  25. # 以二进制输出
  26. print(req.content)
  27. # 最后关闭selenium打开的页面,cookies也随之失效
  28. chrome.quit()

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/608330
推荐阅读
相关标签
  

闽ICP备14008679号