Selenium爬取京东商品评价,并进行基于情感词典的文本情感极性分析
1. 介绍及开发环境
通过Selenium爬取京东商品(以Ipad为例)的评价这一部分,参考的是崔庆才的《Python3网络爬虫开发实战》,通过Selenium来模拟浏览器爬取京东上的商品评价信息,可以有效的处理反爬虫。
纯新手,所以基于情感词典的文本情感极性分析参考的是这篇文章,链接如下:https://www.jianshu.com/p/4cfcf1610a73?nomobile=yes ,通过情感打分的方式对文本内容进行情感极性判断。
开发环境为PyCharm+mysql,需要安装Selenium、pyquery、pandas、jieba以及MySQL库。
2. 爬虫实现
2.1 请求构造
打开京东,搜索IPad,选择评论数最多的商品,查看评论,可以看到,请求的网址为:https://item.jd.com/6805044.html#comment ,当点击如下图所示的“下一页”按钮时,请求网址没有发生变化,但显示显示的商品评论发生变化,所以无法通过构造参数的方法构造请求。
MAX_PAGE = 100 # 最大页数
browser = webdriver.Firefox()
wait = WebDriverWait(browser, 10)
# 构造URL请求
def index_page():
try:
url = 'https://item.jd.com/6805044.html#comment'
browser.get(url=url)
for i in range(1, MAX_PAGE):
# 等待评论加载完成
wait.until(EC.presence_of_element_located(
(By.CSS_SELECTOR, '#comment .mc .tab-con .comment-item')))
get_comments()
# 点击下一页
next = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, '#comment .mc .ui-pager-next')))
next.click()
except TimeoutException:
print('TimeOut Error')
2.2 提取信息
接下来就可以实现 get_comments()方法来获取评论信息,这里我们直接获取网页源代码,然后用pyquery进行解析,获取每条评论的用户名、打分、评论内容、购买版本及评论时间等信息。代码实现如下:
def get_comments():
"""
提取评价数据
"""
html = browser.page_source # 获取页码源码
doc = pq(html)
items = doc('#comment .mc .tab-con .comment-item').items() # 提取评论目录
for item in items:
comment = {
'Name': item.find('.user-column .user-info').text(), # 提取用户名,如:z***0
'Star': str(item.find('.co

本文利用Selenium爬取京东Ipad商品评价,通过情感词典进行情感极性分析。首先介绍了开发环境,接着详细阐述了爬虫的请求构造、信息提取、数据存储过程,然后说明了文本情感分析的数据准备、处理和计算得分方法,最后对结果进行了总结。
最低0.47元/天 解锁文章

1165

被折叠的 条评论
为什么被折叠?



