爬虫

  • 前言
  • aqy评论爬取
    • 请求数据
    • 数据清洗
    • 爬取数据
    • 分词
    • 停用词
    • 绘制统计表
    • 词云绘制
    • 主函数
    • 一些其他问题优化

前言

本项目来自Baidu AI Studio相关python课程。

aqy评论爬取

请求数据

首先分析想要爬取的页面评论。

在每次点击获取评论时,都会有一个get_comments的请求,请求中的url就是我们所需要的请求链接。
https://sns-comment.iqiyi.com/v3/comment/get_comments.action?agent_type=118&agent_version=9.11.5&authcookie=null&business_type=17&content_id=15472234400&hot_size=0&page=&page_size=20&types=time&last_id=241192681621
该页面请求评论的机制是,通过获取last_id,最后一个显示的评论,来获取之后的评论,只要不断更改last_id不断请求,就能拉取所有评论。

思路就有了,不断请求获取评论的URL,获取评论。
这里使用的是Session建立一个会话,不建立其实也没问题。


def getMovieinfo(url):'''请求爱奇艺评论接口,返回response信息参数  url: 评论的urlreturn: response信息'''session = requests.Session()headers = {"User-Agent": "Mozilla/5.0", #请求来源设置"Accept": "application/json",# 客户端能接受的内容"Referer": "https://www.iqiyi.com/v_19ryhrmpcc.html#curid=15472234400_2d7e859019eb31bf551d6a90e8daedcf","Origin": "http://m.iqiyi.com", # 指明请求来自于哪个站点"Host": "sns-comment.iqiyi.com",#请求web服务器域名地址"Connection": "keep-alive", # 保持连接"Accapt-Language": "en-Us,en;q=0.9,zh-CN;q=0.8,zh;q=0.7,zh-Tw;q=0.6", # 优先显示的语言"Accept-Encoding":"gzip, deflate" # 支持的返回压缩格式}response = session.get(url, headers=headers)if response.status_code == 200: # 响应成功return response.textreturn None

思路:输入分析得到的评论获取url,使用getMovieinfo得到json格式的响应,json格式数据转换为字典,可以通过 [‘data’][‘comments’] 标签把评论部分提取出来,content是其中的文字部分。
comments中包含很多条评论信息,每次循环VAL中是一条评论信息,如果这条评论信息中有中文和lastID,那么就是一条有效信息,把cantent部分提取出来,lastID也提取为下一步的请求做准备。

def saveMoviernforoFile(lastId,arr):# '''# 解析json数据,获取评论# 参数lastrd:最后一条评论ID arx:存故文本的1ist# return:新的lastrd# '''url="https://sns-comment.iqiyi.com/v3/comment/get_comments.action?agent_type=118&agent_version=9.11.5&authcookie=null&business_type=17&content_id=15472234400&hot_size=0&page=&page_size=20&types=time&last_id="url+=str(lastId)responseTxt=getMovieinfo(url)responseJson=json.loads(responseTxt)comments=responseJson['data']['comments']for val in comments:#print(val.keys())if'content'in val.keys():print(val['content'])arr.append(val['content'])lastId=str(val['id'])return lastId

另一种解析方法:
使用BeautifulSoup库解析,来替代json.loads的转换。不过BeautifulSoup针对html文档解析,这里不需要用到。

数据清洗

def clear_special_char(content):#清除没有意义的字符,数据清洗s = re.sub(r"</?(.+?)>|&nbsp;|\t|\r", "", content)s = re.sub(r"\n", "", s)s = re.sub(r"\*", "\\*", s)s = re.sub("\u4e00-\u9fa5^a-z^A-Z^0-9", "", s)s = re.sub('[\001\002\003\004\005\006\007\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a]+','', s)s = re.sub('[a-zA-Z]', "", s)s = re.sub('^\d+(\.\d+)?$', "", s)s = re.sub(u'[\U00010000-\U0010ffff]', ' ', s)s = re.sub(u'[\uD800-\uDBFF][\uDC00-\uDFFF]', ' ', s)for ch in ',。;:“”、》《、|*&…												

【爬虫实战】评论爬取及词频统计详解相关推荐

  1. Python爬虫教程-Python爬取股票数据过程详解

    这篇文章主要介绍了基于Python爬取股票数据过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 基本环境配置 python 3.6 pycha ...

  2. python喜马拉雅_Python爬虫实战案例:取喜马拉雅音频数据详解!

    前言 喜马拉雅是专业的音频分享平台,汇集了有声小说,有声读物,有声书,FM电台,儿童睡前故事,相声小品,鬼故事等数亿条音频,我最喜欢听民间故事和德云社相声集,你呢? 今天带大家爬取喜马拉雅音频数据,一 ...

  3. Python爬虫实战案例:取喜马拉雅音频数据详解

    前言 喜马拉雅是专业的音频分享平台,汇集了有声小说,有声读物,有声书,FM电台,儿童睡前故事,相声小品,鬼故事等数亿条音频,我最喜欢听民间故事和德云社相声集,你呢? 今天带大家爬取喜马拉雅音频数据,一 ...

  4. python录音详解_Python爬虫实战案例:取喜马拉雅音频数据详解

    前言 喜马拉雅是专业的音频分享平台,汇集了有声小说,有声读物,有声书,FM电台,儿童睡前故事,相声小品,鬼故事等数亿条音频,我最喜欢听民间故事和德云社相声集,你呢? 今天带大家爬取喜马拉雅音频数据,一 ...

  5. python爬取喜马拉雅_Python爬虫实战案例之爬取喜马拉雅音频数据详解

    这篇文章我们来讲一下在网站建设中,Python爬虫实战案例之爬取喜马拉雅音频数据详解.本文对大家进行网站开发设计工作或者学习都有一定帮助,下面让我们进入正文. 前言 喜马拉雅是专业的音频分享平台,汇集 ...

  6. 携程ajax,Python爬虫实战之爬取携程评论

    一.分析数据源 这里的数据源是指html网页?还是Aajx异步.对于爬虫初学者来说,可能不知道怎么判断,这里辰哥也手把手过一遍. 提示:以下操作均不需要登录(当然登录也可以) 咱们先在浏览器里面搜索携 ...

  7. Python爬虫实战之爬取糗事百科段子

    Python爬虫实战之爬取糗事百科段子 完整代码地址:Python爬虫实战之爬取糗事百科段子 程序代码详解: Spider1-qiushibaike.py:爬取糗事百科的8小时最新页的段子.包含的信息 ...

  8. Python 网络爬虫实战:爬取知乎回答中的全部图片

    平时逛知乎的时候,经常能看到很多很棒的图片,精美的壁纸,搞笑的表情包,有趣的截图等等,总有想全部保存下来的冲动. 于是在一个小老弟的拜托之下,我把之前的知乎爬虫改造了一下,改装成了一个可以下载知乎回答 ...

  9. Python爬虫实战:爬取解放日报新闻文章

    上一篇<Python 网络爬虫实战:爬取人民日报新闻文章>发布之后,确实帮到了不少朋友. 前几天,我好哥们问我:我想爬另一个日报新闻网站,网页结构几乎跟人民日报几乎一模一样,但是我用你的那 ...

最新文章

  1. 一条长度为l的笔直街道 java_如图,在一条笔直的东西向海岸线l上有一长为1.5km的码头MN和灯塔C,灯塔C距...
  2. 皮一皮:谁还不是个孩子...
  3. Understanding HBase and BigTable 译文
  4. Exception和RuntimeException的区别
  5. 一号信令是什么?1号信令和7号信令的区别介绍!
  6. 项目运行报'vue-cli-service' 不是内部或外部命令,也不是可运行的程序 或批处理文件“
  7. Gym 102798A(思维) acm寒假集训日记21/12/31or22/1/1
  8. 如何通过反射创建对象
  9. 如何在 iOS 15 和 macOS Monterey 的 Safari 中隐藏 IP 地址?
  10. 十款开源的数据库管理工具
  11. 国科大李保滨矩阵分析与应用2021回忆版
  12. 概率统计Python计算:单个正态总体均值的双侧区间估计
  13. 查看/设置windows密钥
  14. 20162327WJH实验四——图的实现与应用
  15. mysql基于amoeba读写分离
  16. 梅特勒托利多xk3124电子秤说明书_梅特勒托利多称重仪表XK3124 B520
  17. flask 起服务 、访问
  18. RPL(10):RFC6550翻译(10)---分组转发和环路避免/检测
  19. 51单片机C语言程序100例分析(1)IO+C语言+头文件
  20. IE11 安装 此更新不适应计算机

热门文章

  1. 网络游戏中通信消息的组织
  2. EXCEL2003数据透视表使用教程
  3. 超频稳定测试软件,超频第三步:稳定性测试Kombuster
  4. 原生安卓开发app的框架frida常用关键代码定位
  5. Notepad++添加右键打开方式
  6. Dell戴尔台式机电脑灵越Inspiron 3670原装出厂Windows10恢复原厂OEM系统
  7. Android 平板通过USB口连接小票打印机
  8. 在Excel中使用FREQUENCY函数统计各分数段人数
  9. 2021年中国产业用纺织品行业经济运行情况及2022年发展展望[图]
  10. 新宝综述连续拉升回踩一触即发