写一个用python爬取淘宝评论的方法
时间: 2023-09-01 08:08:56 浏览: 108
毕业设计项目Python基于机器学习的商品评论情感分析项目源码+数据集+训练好的模型+GUI界面,从淘宝爬取评论
5星 · 资源好评率100%
爬取淘宝评论需要模拟浏览器行为,一般使用 Selenium 或者 Pyppeteer 这样的工具来实现。以下是一个使用 Selenium 爬取淘宝商品评论的示例代码:
```python
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
import time
# 设置 Chrome 浏览器的启动参数
options = webdriver.ChromeOptions()
options.add_argument("--headless")
options.add_argument("--disable-gpu")
options.add_argument("--no-sandbox")
# 设置 Chrome 浏览器的驱动路径
driver_path = "/usr/local/bin/chromedriver"
# 创建 Chrome 浏览器的实例
driver = webdriver.Chrome(options=options, executable_path=driver_path)
# 打开淘宝商品页面
url = "https://item.taobao.com/item.htm?id=618163391276"
driver.get(url)
# 切换到商品评论的 iframe 中
iframe = driver.find_element_by_id("sufei-dialog-content")
driver.switch_to.frame(iframe)
# 等待评论数据加载完毕
wait = WebDriverWait(driver, 10)
wait.until(EC.presence_of_element_located((By.CLASS_NAME, "tb-rev-item")))
# 模拟滚动页面获取更多评论数据
comments = []
while True:
# 获取页面上的所有评论
comment_items = driver.find_elements_by_class_name("tb-rev-item")
# 提取评论文本
for comment_item in comment_items:
comment = comment_item.find_element_by_class_name("tb-rev-item-text").text
comments.append(comment)
# 模拟滚动页面
driver.find_element_by_tag_name("body").send_keys(Keys.END)
time.sleep(1)
# 判断是否已经滚动到了页面底部
if driver.execute_script("return window.scrollY + window.innerHeight >= document.body.scrollHeight"):
break
# 打印评论数据
for comment in comments:
print(comment)
# 关闭浏览器
driver.quit()
```
这个代码示例使用 Chrome 浏览器打开淘宝商品页面,并且切换到商品评论的 iframe 中。然后模拟滚动页面获取更多评论数据,并通过 Selenium 提取评论文本。最后打印出所有的评论数据。请注意,爬取淘宝评论的行为有可能会违反淘宝的使用协议,建议在爬取前先查看淘宝的使用条款并获取相关的许可。
阅读全文