赞
踩
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
使用selenium,requests提取斗鱼美女数据
数据来源 斗鱼美女链接
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,或者结合两种库进行使用。
打开控制台数据(页面右击检查,点击元素出现以下页面)
我们发现数据应该在ul列表标签下的li中,接下来,可以开始写代码了
代码如下(示例):
- import json
- from selenium import webdriver
- from selenium.webdriver.common.by import By
- from selenium.webdriver.edge.options import Options
- from selenium.webdriver.edge.service import Service
- import requests
-
-
- # todo 每隔7一次循环
- options = Options ()
- options.add_argument ("--headless")
- driver = webdriver.Edge (
- options=options,
- service=Service (executable_path=r'D:\pythonProject\爬虫\seleniumDemo\sserver\msedgedriver.exe')
- )
-
-
- # # todo 提取第一页的所有数据
- def getValuesFromUrl():
- driver.get ('https://www.douyu.com/g_xingxiu')
- # 获取所有的li标签
- val = driver.find_elements (by=By.CLASS_NAME,
- value=f'layout-Cover-item')
- for i in range (0, len(val)):
- data=val[i]
- img_source=data.find_elements(by=By.TAG_NAME,value="source")[1].get_attribute("srcset")
- print(f"第{i+1}张图片",img_source)
-
但是,使用selenium并不能异步计算后序其他页面的数据
点击网络的Fetch/XHR,并且在页面中点击第二页,找到名称数据中正确请求的数据
找到这个数据对应的异步请求网页
异步提交的python代码
- # 异步传输
- # 分页数据
- def testByRequest():
- for j in range(1,5):
- url=f'https://www.douyu.com/wgapi/ordnc/live/web/room/mixList/2/1008/0/{j}'
- # 获取所有的li标签
- data=requests.get(url).text
- base=json.loads(data)
- # 获取图片
- base=base['data']['rl']
- for i in range(1,len(base)):
- img=base[i]['rs_ext'][-1]['rs16']
- print(f"第{j}页第{i}张图片为",img)
-
- if __name__ == '__main__':
- testByRequest()
结果如下
Selenium和Requests是两种不同的Python库,它们各自用于不同的任务:
- Selenium是一个自动化测试工具,可以模拟用户在Web浏览器中的操作,包括点击、输入文本、提交表单等。它通常被用于爬取需要模拟用户行为才能访问的网站数据,比如需要登录才能访问的网站。
- Requests是一个用于HTTP请求的Python库。它可以发送GET、POST、PUT、DELETE等请求,并支持向HTTP请求中添加header、cookies等信息。它通常被用于爬取无需模拟用户行为的网站数据。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。