新闻动态

python小练习之爬鱿鱼游戏的评价生成词云

发布日期:2021-12-23 15:55 | 文章来源:CSDN

鱿鱼游戏是什么,相信大家都不陌生了,虽然说博主没看过这部剧,但是还是对豆瓣的评论有点好奇,刚刚好近期学习了selenium,就当练练手了,来吧来吧,爬爬爬。

分析页面

还是老样子,兄弟们先打开我们最喜欢的google浏览器,点击F12,开启爬虫快乐模式
来到页面,如下图步骤,逐个点击

然后我们就发现这个页面确实很简单,每一条评论就是包在了class为short的span标签内,那就可以开始写xpath了,如下图

这样一页的评论就拿到了,接下来就是换页了
有一个小技巧,不需要我们自己写xpath,直接用google浏览器可以生成xpath,如下图所示

点击这个Copy path这样就拿到了按钮的xpath的内容,然后实现点击页面就可以了,好了就这样分析完了,接下来开始写代码了。

重要代码

selenium打开豆瓣短评页面

# 待打开的页面
 url = 'https://movie.douban.com/subject/34812928/comments?limit=20&status=P&sort=new_score'
 # 躲避智能检测
 option = webdriver.ChromeOptions()
 # option.headless = True
 option.add_experimental_option('excludeSwitches', ['enable-automation'])
 option.add_experimental_option('useAutomationExtension', False)
 driver = webdriver.Chrome(options=option)
 driver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument',{'source': 'Object.defineProperty(navigator, "webdriver", {get: () => undefined})'
})
 #打开页面
 driver.get(url)

根据xpath来获取评论内容

这里获取评论的xpath语句

//span[@class="short"]

获取评论代码

  options = driver.find_elements(By.XPATH, '//span[@class="short"]')
  for i in options:
  text=text+i.text

实现跳转下一页

下一页的按钮xpath

//*[@id="paginator"]/a

跳转按钮点击代码

  nextpage = driver.find_element(By.XPATH, '//*[@id="paginator"]/a')
  nextpage.click()

完整代码

词云生成工具类

# -*- codeing = utf-8 -*-
# @Time : 2021/10/9 20:54
# @Author : xiaow
# @File : wordcloudutil.py
# @Software : PyCharm

from wordcloud import WordCloud
import PIL.Image as image
import numpy as np
import jieba

def trans_CN(text):
 # 接收分词的字符串
 word_list = jieba.cut(text)
 # 分词后在单独个体之间加上空格
 result = " ".join(word_list)
 return result

def getWordCloud(text):
 # print(text)
 text = trans_CN(text)
 # 词云背景图
 mask = np.array(image.open("E://file//pics//mask3.jpg"))
 wordcloud = WordCloud(
  mask=mask,
  # 字体样式文件
  font_path="C:\Windows\Fonts\STXINGKA.TTF",
  background_color='white'
 ).generate(text)
 image_produce = wordcloud.to_image()
 image_produce.show()

评论获取代码

# -*- codeing = utf-8 -*-
# @Time : 2021/6/27 22:29
# @Author : xiaow
# @File : test.py
# @Software : PyCharm
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from api import wordcloudutil
if __name__ == '__main__':
 url = 'https://movie.douban.com/subject/34812928/comments?limit=20&status=P&sort=new_score'
 # 躲避智能检测
 option = webdriver.ChromeOptions()
 # option.headless = True
 option.add_experimental_option('excludeSwitches', ['enable-automation'])
 option.add_experimental_option('useAutomationExtension', False)
 driver = webdriver.Chrome(options=option)
 driver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument',{'source': 'Object.defineProperty(navigator, "webdriver", {get: () => undefined})'
})
 driver.get(url)
 text=''
 # 获取所有的选项元素
 j=0
 while 1:
  # 定位到新跳转的页面
  time.sleep(1)
  driver.switch_to.window(driver.window_handles[0])
  options = driver.find_elements(By.XPATH, '//span[@class="short"]')
  for i in options:
  text=text+i.text
  time.sleep(2)
  nextpage = driver.find_element(By.XPATH, '//*[@id="paginator"]/a')
  nextpage.click()
  j=j+1
  if j>10:
break
 print(text)
 wordcloudutil.getWordCloud(text)

成果

最后爬取的评论生成了词云图,如下图所示

就这样就结束了,还是很简单的

到此这篇关于python小练习之爬鱿鱼游戏的评价生成词云的文章就介绍到这了,更多相关Python 爬取鱿鱼游戏内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。

相关文章

实时开通

自选配置、实时开通

免备案

全球线路精选!

全天候客户服务

7x24全年不间断在线

专属顾问服务

1对1客户咨询顾问

在线
客服

在线客服:7*24小时在线

客服
热线

400-630-3752
7*24小时客服服务热线

关注
微信

关注官方微信
顶部