Python微博奔驰事件爬虫

工具:Pycharm,Win10,Python3.6.4

最近奔驰漏油事件成为大家讨论的热点,也频上热搜。我就来做了一下微博评论爬虫,看看大家对这件事情的看法。

微博移动端相对好爬一些,且评论数据差不多,所以我们主要是针对微博移动端进行信息采集。

我们打开网址看到如下信息

评论量还是挺多的,所以我们要先获取该微博的链接,然后通过该微博去获取评论页。可以看到微博是动态加载的,你不断往下翻就会有新的微博内容出现,此时我们应该考虑是动态加载

可以看到每次会产生10条微博数据,我们要获取这10条数据中的idstr去构造每条微博的详情链接。

找到了我们要的idstr之后我们观察微博详情链接的网页规则发现https://m.weibo.cn/detail/+idstr,详情页有着这样的规则,那么对我们来说很容易构造。有了详情页链接我们就要获取详情页中的微博内容和评论数据。通过分析发现微博内容实在详情页的源码中,这个很好获取。但是微博内容常常带着超链接,这影响数据的实用性,我们需要用一个正则去匹配中文内容。评论内容同样是动态加载,注意,我这边只考虑一级评论。

在获取评论的时候有个注意点,评论不像我们之前我们所接触的翻页,直接page加一就能获取下一页的评论内容,他是在上一页的评论中有一个id,然后通过这个id去构造下一页的评论页,如此往复。

下面贴出代码

import requests
import json
import re
import csv
import timeheaders = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36','cookie':'换上自己的cookie',
}def get_html(url):response = requests.get(url, headers=headers)response.encoding = response.apparent_encodinghtml = response.textreturn htmldef parse_index_html(html):html = json.loads(html)idstr = []for i in html['data']['cards'][0]['card_group']:idstr.append(i['mblog']['idstr'])return idstrdef parse_detail_html(html):text_pattern = re.compile('"text":(.*?)"textLength"', re.S)text = re.findall(text_pattern, html)text_process_pattern = re.compile('[\u4e00-\u9fa5|,、“”‘’:!~@#¥【】*()——+。;?]+', re.S)text_process = re.findall(text_process_pattern, text[0])text = ''.join(text_process)return str('内容') + textdef parse_comment_html(html):html = json.loads(html)comments = []max_id = html['data']['max_id']# print(max_id)for i in html['data']['data']:text_process_pattern = re.compile('[\u4e00-\u9fa5|,、“”‘’:!~@#¥【】*()——+。;?]+', re.S)text_process = re.findall(text_process_pattern, i['text'])text = ''.join(text_process)write2csv(text)# comments.append(text)return max_iddef write2csv(content):with open('info1.csv','a',encoding='utf-8-sig',newline='') as f:writer = csv.writer(f)writer.writerow([content])
if __name__ == '__main__':max_id = '0'for page in range(2,10):print('第几页 '+str(page))url = 'https://m.weibo.cn/api/container/getIndex?containerid=100103type%3D60%26q%3D%23%E5%A5%94%E9%A9%B0%E5%A5%B3%E8%BD%A6%E4%B8%BB%E5%93%AD%E8%AF%89%E7%BB%B4%E6%9D%83%23%26t%3D0&page_type=searchall&page='+str(page)index_html = get_html(url)idstr = parse_index_html(index_html)for id in idstr:print('内容ID '+str(id))detail_text_url = 'https://m.weibo.cn/detail/' + str(id)detail_html = get_html(detail_text_url)text = parse_detail_html(detail_html)write2csv(text)for i in range(5):try:time.sleep(3)print('评论页码 '+str(i))# 'https://m.weibo.cn/comments/hotflow?id=4362541104634930&mid=4362541104634930&max_id_type=0'comment_url = 'https://m.weibo.cn/comments/hotflow?id=' + str(id) + '&mid=' + str(id) + '&max_id=' + str(max_id) + '&max_id_type=0'print(comment_url)comment_html = get_html(comment_url)# print(comment_html)max_id = parse_comment_html(comment_html)print('max_id '+str(max_id))if str(max_id) == '0':breakexcept:continue

Python 微博奔驰事件爬虫相关推荐

  1. python线程监控配置文件_一日一技:Python多线程的事件监控

    一日一技:Python多线程的事件监控 设想这样一个场景: 你创建了10个子线程,每个子线程分别爬一个网站,一开始所有子线程都是阻塞等待.一旦某个事件发生:例如有人在网页上点了一个按钮,或者某人在命令 ...

  2. 微博热点事件背后数据库运维的“功守道”

    作者 | 张冬洪 责编 | 仲培艺 [导语] 微博拥有超过3.76亿月活用户,是当前社会热点事件传播的主要平台.而热点事件往往具有不可预测性和突发性,较短时间内可能带来流量的翻倍增长,甚至更大.如何快 ...

  3. Python 实现简单的爬虫

    Python 是一种跨平台的计算机程序设计语言,面向对象动态类型语言,Python是纯粹的自由软件,源代码和解释器cpython遵循 GPL(GNU General Public License)协议 ...

  4. python很全的爬虫入门教程

    python很全的爬虫入门教程 一.爬虫前的准备工作 首先,我们要知道什么是爬虫 1.什么是网络爬虫? 网络爬虫是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁 ...

  5. python 微博自动点赞软件_Python微博工具人,每日一句英语自动发

    原标题:Python微博工具人,每日一句英语自动发 关注 来源 | 萝卜大杂烩(ID:luobodazahui) 如若转载请联系原公众号 最近在研究用 Python 来制作各个类别的机器人,今天先来分 ...

  6. python微博评论情感分析_基于Python的微博情感分析系统设计

    2019 年第 6 期 信息与电脑 China Computer & Communication 软件开发与应用 基于 Python 的微博情感分析系统设计 王 欣 周文龙 (武汉工程大学邮电 ...

  7. 【期刊】基于 Python 的新浪微博数据爬虫

    来源:Journal of Computer Applications 作者:周中华,张惠然,谢 江 0 引言 计算机技术的进步使人们的生活方式逐渐发生改变,社 交网络就是一个非常突出的例子.越来越多 ...

  8. python微博文本分析_基于Python的微博情感分析系统设计

    基于 Python 的微博情感分析系统设计 王欣 ; 周文龙 [期刊名称] < <信息与电脑> > [年 ( 卷 ), 期] 2019(000)006 [摘要] 微博是当今公众 ...

  9. Python之Selenium自动化爬虫

    文章目录 Python之Selenium自动化爬虫 0.介绍 1.安装 2.下载浏览器驱动 3.实例 4.开启无头模式 5.保存页面截图 6.模拟输入和点击 a.根据文本值查找节点 b.获取当前节点的 ...

最新文章

  1. python循环语句-Python-循环语句及循环控制语句
  2. EXCEL打开CSV文件乱码的解决方法
  3. UEditor 使用setContent()遇到的奇葩问题
  4. Web开发(一)·期末不挂之第六章·网页布局(浮动定位)
  5. 【BLOCK】Oracle 块管理常用SQL
  6. latex multicolumn_LaTeX入门(3)
  7. my Lead add Lead test
  8. [6]Windows内核情景分析 --APC
  9. 0-2岁的app开发人员必读,Android开发APP前的准备事项
  10. 4.Python的不堪一击到初学乍练(列表,元组)
  11. 工业机器人用铸铁牌号_锻钢牌号表示方法你了解么?
  12. 软件工程类图_软件工程系列-UML3
  13. vuex页面刷新后数据丢失
  14. 微波工程(2)——传输线理论
  15. 关于图书管理系统项目的大概思路
  16. 03-KVM虚拟磁盘格式及快照
  17. Alpha版本冲刺(七)
  18. 重新发现业务架构:银行数字化转型经验与方法分析
  19. 这俩 AI 项目贼有意思
  20. 正点原子 核心板IMX6ULL IIC RTC驱动 PCF8563

热门文章

  1. 索尼相机A卡格式化MP4视频的数据恢复案例
  2. php 翻牌,PHP+jQuery翻牌抽奖
  3. MySql时间调整NOW()与系统时间不一致
  4. Linux下闹钟函数alarm的常见用法
  5. 【论文学习】关于联邦学习激励机制的2篇T2论文
  6. web of science 数据库都包括哪些?
  7. 无尘车间净化装修方案
  8. 铸博皇御:现货黄金杠杆交易究竟有什么魅力
  9. 区块链+人工智能,如何颠覆我们已知生活
  10. 数据库系统原理 实验3 数据库设计