使用selenium模拟浏览器访问京东,爬取京东网站商品评价
时间: 2023-12-13 12:06:10 浏览: 98
基于Python selenium实现京东模拟登陆
好的,以下是使用selenium模拟浏览器爬取京东商品评价的代码:
```python
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from time import sleep
# 创建一个浏览器对象
browser = webdriver.Chrome()
# 访问京东首页
browser.get('https://www.jd.com/')
# 查找搜索框并输入要搜索的商品名称
search_box = browser.find_element_by_id('key')
search_box.send_keys('手机')
search_box.send_keys(Keys.ENTER)
# 等待搜索结果页面加载完成
sleep(3)
# 找到商品列表中第一个商品的链接并点击进入商品详情页
product_link = browser.find_element_by_css_selector('.gl-item:nth-child(1) .p-name a')
product_link.click()
# 切换到新打开的标签页
browser.switch_to.window(browser.window_handles[-1])
# 进入商品评价页面
browser.find_element_by_css_selector('#detail .comment-count').click()
# 模拟滚动加载评价数据
while True:
browser.execute_script('window.scrollTo(0, document.body.scrollHeight)')
sleep(3)
try:
# 找到“查看更多”的按钮并点击
more_button = browser.find_element_by_css_selector('.comment-item .comment-operate .btn-append')
more_button.click()
sleep(3)
except:
# 没有“查看更多”按钮,说明评价数据已全部加载完成
break
# 找到所有评价的元素
comments = browser.find_elements_by_css_selector('.comment-item')
# 遍历所有评价并输出评价内容
for comment in comments:
content = comment.find_element_by_css_selector('.comment-con').text.strip()
print(content)
# 关闭浏览器
browser.quit()
```
上面的代码中,我们首先使用`selenium`创建一个`Chrome`浏览器对象,并访问京东首页。然后,我们在搜索框中输入要搜索的商品名称,按下`Enter`键进行搜索。搜索结果页面加载完成后,我们找到商品列表中第一个商品的链接,并点击进入商品详情页。切换到新打开的标签页后,我们进入商品评价页面,然后模拟滚动加载评价数据,并在评价数据全部加载完成后,找到所有评价的元素,遍历所有评价并输出评价内容。最后,关闭浏览器。
阅读全文