python爬虫-京东商品评论
发布时间
阅读量:
阅读量
该文本描述了一种通过Python爬虫技术从京东某商品页面提取并保存商品评论的方法和流程:1. 使用selenium库模拟浏览器操作并打开京东商品详情页2. 初始化BeautifulSoup进行网页内容解析3. 通过JavaScript滚动至网页底部以获取所有评论4. 使用正则表达式和标签匹配提取每条评论文本5. 将爬取的评论存储在一个列表中6. 处理分页功能(如点击下一页按钮)以获取所有页数的评论7. 将所有收集到的评论数据存储为DataFrame格式后导出为CSV文件该方法可以实现从京东网站批量爬取商品评价并进行后续的数据分析或展示工作。
使用数据采集工具从京东某商品的评论中提取信息,并将其存储在一个本地数据库中
import random
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.support.ui import WebDriverWait
import time
from bs4 import BeautifulSoup
import pandas as pd
from selenium.webdriver.common.keys import Keys
browser = webdriver.Chrome(executable_path='C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe')
browser.get('https://item.jd.com/100007264815.html')
browser.switch_to.window(browser.window_handles[0])
time.sleep(3)
browser.switch_to.window(browser.window_handles[-1])
comments = []
for k in range (0,100):
try:
js = "var q=document.documentElement.scrollTop=1000000"
browser.execute_script(js) # 使用javascript命令,网页下拉到最底部
elements = browser.find_element_by_xpath('//*[@id="comment-4"]')
InnerElement = elements.get_attribute('innerHTML')
soup = BeautifulSoup(InnerElement, 'lxml')
comments_data = soup.find_all('p', {'class': 'comment-con'})
if not comments_data:
print('无评论')
break
for j in comments_data:
comments.append(j.get_text())
print(comments)
time.sleep(random.random() * 5 + 1)
except Exception as e:
print(e)
try:
element = browser.find_element_by_css_selector(
'#comment-4 > div.com-table-footer > div > div > a.ui-pager-next')
browser.execute_script("arguments[0].click();",
element) # comment-4 > div.com-table-footer > div > div > a.ui-pager-next
time.sleep(1)
except Exception as e:
print(e)
df = pd.DataFrame(comments)
df.to_csv('狗粮好评.csv', index=False, encoding='utf_8_sig')

全部评论 (0)
还没有任何评论哟~
