python爬取https://www.iqiyi.com/u/1290995902/videos前10页视频的 视频标题、URL、当前热度、评论数
时间: 2023-12-23 10:03:08 浏览: 123
由于该页面需要登录才能访问,因此需要使用Selenium模拟登录。
以下是代码示例:
```python
from selenium import webdriver
from time import sleep
import re
chromedriver_path = 'chromedriver.exe' # chromedriver.exe的路径
browser = webdriver.Chrome(chromedriver_path)
# 登录
url = 'https://www.iqiyi.com/u/1290995902/videos'
browser.get(url)
sleep(5)
login_btn = browser.find_element_by_xpath('//a[@class="userLogin-btn"]')
login_btn.click()
sleep(2)
login_frame = browser.find_element_by_xpath('//iframe[@id="login_frame"]')
browser.switch_to.frame(login_frame)
login_type_btn = browser.find_element_by_xpath('//a[@data-login-type="sms"]')
login_type_btn.click()
sleep(2)
phone_input = browser.find_element_by_xpath('//input[@placeholder="请输入手机号"]')
phone_input.send_keys('your_phone_number') # 填写自己的手机号
password_input = browser.find_element_by_xpath('//input[@placeholder="请输入验证码"]')
password_input.send_keys('your_verification_code') # 填写自己收到的验证码
login_btn = browser.find_element_by_xpath('//a[@class="login-btn"]')
login_btn.click()
browser.switch_to.default_content()
sleep(5)
# 爬取数据
data = []
for i in range(1, 11):
url = f'https://www.iqiyi.com/u/1290995902/videos?pageNum={i}'
browser.get(url)
sleep(3)
video_items = browser.find_elements_by_xpath('//div[@class="site-piclist_pic"]')
for item in video_items:
title = item.get_attribute('title')
url = item.find_element_by_tag_name('a').get_attribute('href')
hot = item.find_element_by_xpath('.//div[@class="site-piclist_info"]//span[@class="play"]')\
.get_attribute('innerHTML')
hot = re.findall(r'([\d,]+)次播放', hot)[0].replace(',', '')
comment = item.find_element_by_xpath('.//div[@class="site-piclist_info"]//span[@class="icon-comment"]')\
.get_attribute('innerHTML')
comment = re.findall(r'([\d,]+)条评论', comment)[0].replace(',', '')
data.append({'title': title, 'url': url, 'hot': int(hot), 'comment': int(comment)})
# 输出数据
for item in data:
print(item)
```
需要注意的是,该代码中的手机号和验证码需要替换成自己的真实信息,否则无法登录。另外,由于该页面加载比较慢,因此需要适当增加等待时间。
阅读全文