当前位置:   article > 正文

Python提取斗鱼美女图片--selenium requests两种方式_selenium 最新爬取斗鱼

selenium 最新爬取斗鱼

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

使用selenium,requests提取斗鱼美女数据

数据来源 斗鱼美女链接

一、selenium是干嘛的,与request的区别

Selenium和Requests是两种不同的Python库,它们各自用于不同的任务:

- Selenium是一个自动化测试工具,可以模拟用户在Web浏览器中的操作,包括点击、输入文本、提交表单等。它通常被用于爬取需要模拟用户行为才能访问的网站数据,比如需要登录才能访问的网站。

- Requests是一个用于HTTP请求的Python库。它可以发送GET、POST、PUT、DELETE等请求,并支持向HTTP请求中添加header、cookies等信息。它通常被用于爬取无需模拟用户行为的网站数据。

因此,Selenium 和 Requests 有以下区别:

- 任务领域不同:Selenium用于模拟用户在Web浏览器中的操作,Requests用于HTTP请求。
- 爬取方式不同:Selenium模拟用户在Web浏览器中的操作,可以模拟点击按钮、输入文本等操作;Requests则只是发起HTTP请求,不能进行类似的操作。
- 应用场景不同:Selenium主要用于爬取需要模拟用户行为才能访问的网站数据,Requests主要用于爬取无需模拟用户行为的网站数据。

在实际应用中,需要根据具体情况选择使用Selenium还是Requests,或者结合两种库进行使用。

二、数据的查看

1.查看美女图片所在的路径

 打开控制台数据(页面右击检查,点击元素出现以下页面) 

我们发现数据应该在ul列表标签下的li中,接下来,可以开始写代码了 

2.selenium操作第一页

代码如下(示例):

  1. import json
  2. from selenium import webdriver
  3. from selenium.webdriver.common.by import By
  4. from selenium.webdriver.edge.options import Options
  5. from selenium.webdriver.edge.service import Service
  6. import requests
  7. # todo 每隔7一次循环
  8. options = Options ()
  9. options.add_argument ("--headless")
  10. driver = webdriver.Edge (
  11. options=options,
  12. service=Service (executable_path=r'D:\pythonProject\爬虫\seleniumDemo\sserver\msedgedriver.exe')
  13. )
  14. # # todo 提取第一页的所有数据
  15. def getValuesFromUrl():
  16. driver.get ('https://www.douyu.com/g_xingxiu')
  17. # 获取所有的li标签
  18. val = driver.find_elements (by=By.CLASS_NAME,
  19. value=f'layout-Cover-item')
  20. for i in range (0, len(val)):
  21. data=val[i]
  22. img_source=data.find_elements(by=By.TAG_NAME,value="source")[1].get_attribute("srcset")
  23. print(f"第{i+1}张图片",img_source)
 但是,使用selenium并不能异步计算后序其他页面的数据

3.使用reques获取数据

点击网络的Fetch/XHR,并且在页面中点击第二页,找到名称数据中正确请求的数据

 

 

找到这个数据对应的异步请求网页

 

异步提交的python代码

  1. # 异步传输
  2. # 分页数据
  3. def testByRequest():
  4. for j in range(1,5):
  5. url=f'https://www.douyu.com/wgapi/ordnc/live/web/room/mixList/2/1008/0/{j}'
  6. # 获取所有的li标签
  7. data=requests.get(url).text
  8. base=json.loads(data)
  9. # 获取图片
  10. base=base['data']['rl']
  11. for i in range(1,len(base)):
  12. img=base[i]['rs_ext'][-1]['rs16']
  13. print(f"第{j}页第{i}张图片为",img)
  14. if __name__ == '__main__':
  15. testByRequest()

 结果如下

 

总结

Selenium和Requests是两种不同的Python库,它们各自用于不同的任务:

- Selenium是一个自动化测试工具,可以模拟用户在Web浏览器中的操作,包括点击、输入文本、提交表单等。它通常被用于爬取需要模拟用户行为才能访问的网站数据,比如需要登录才能访问的网站。

- Requests是一个用于HTTP请求的Python库。它可以发送GET、POST、PUT、DELETE等请求,并支持向HTTP请求中添加header、cookies等信息。它通常被用于爬取无需模拟用户行为的网站数据。

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

闽ICP备14008679号