python爬虫JS逆向爬取https://www.iqiyi.com/u/1290995902/videos前10页视频的 视频标题、URL、当前热度、评论数
时间: 2023-12-23 11:03:16 浏览: 154
python(爬虫)爬取视频.py
5星 · 资源好评率100%
由于该网站是前后端分离的,所以爬取时需要进行JS逆向或者使用Selenium等工具模拟浏览器操作,以下是使用Selenium进行爬取的示例代码:
```python
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# 设置Chrome浏览器无头模式
options = webdriver.ChromeOptions()
options.add_argument('--headless')
browser = webdriver.Chrome(options=options)
# 访问目标网站
url = 'https://www.iqiyi.com/u/1290995902/videos'
browser.get(url)
# 等待页面加载完成
wait = WebDriverWait(browser, 10)
element = wait.until(EC.presence_of_element_located((By.CLASS_NAME, 'mod-video-list')))
# 获取视频列表
video_list = element.find_elements_by_class_name('site-piclist_pic_link')
# 遍历视频列表
for video in video_list:
# 获取视频标题
title = video.get_attribute('title')
# 获取视频URL
url = video.get_attribute('href')
# 获取当前热度
hotness = video.find_element_by_class_name('icon-playtime').text
# 获取评论数
comment = video.find_element_by_class_name('icon-comment').text
print(title, url, hotness, comment)
# 关闭浏览器
browser.quit()
```
需要注意的是,由于该网站存在反爬机制,需要模拟真实用户的行为,例如模拟鼠标滚动等。另外,由于该网站视频列表是使用懒加载的方式加载的,所以需要使用Selenium等工具模拟滚动页面来加载更多的视频。
阅读全文