Python爬取新浪微博用户信息及微博内容
目标
爬取新浪微博用户数据,包括以下字段:id,昵称,粉丝数,关注数,微博数,每一篇微博的内容,转发数,评论数,点赞数,发布时间,来源,以及是原创还是转发。(本文以GUCCI(古驰)为例)
方法
+使用selenium模拟爬虫
+使用BeautifulSoup解析HTML
结果展示
步骤分解
首先,在准备开始爬虫之前,得想好要爬取哪个网址。新浪微博的网址分为网页端和手机端两个,大部分爬取微博数据都会选择爬取手机端,因为对比起来,手机端基本上包括了所有你要的数据,并且手机端相对于PC端是轻量级的。
下面是GUCCI的手机端和PC端的网页展示。
2.模拟登陆
定好爬取微博手机端数据之后,接下来就该模拟登陆了。
模拟登陆的网址
登陆的网页下面的样子
模拟登陆代码
在登录之后可以进入想要爬取的商户信息,因为每个商户的微博量不一样,因此对应的微博页码也不一样,这里首先将商户的微博页码爬下来。与此同时,将那些公用信息爬取下来,比如用户uid,用户名称,微博数量,关注人数,粉丝数目。
4.根据爬取的最大页码,循环爬取所有数据
在得到最大页码之后,直接通过循环来爬取每一页数据。抓取的数据包括,微博内容,转发数量,评论数量,点赞数量,发微博的时间,微博来源,以及是原创还是转发。
4.在得到所有数据之后,可以写到csv文件,或者excel
最后的结果显示在上面展示啦!!!!
到这里完整的微博爬虫就解决啦!!!
原文发布时间为: 2018-11-06
本文作者:Python数据之道
本文来自云栖社区合作伙伴“Python数据之道”,了解相关信息可以关注“Python数据之道”。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
应用JMH测试大型HashMap的性能
PolarDB初赛进展 写这篇是因为PolarDB比赛很重要的一点是控制内存。C++只有2G,Java也只有3G,而6400W的键值对,即使只是Long类型,也需要16 * 64 * 10e6 ≈ 1G的内存,这还不包括其他对象引用的相关开销,所以内存控制在这里是非常重要的,因为稍不小心就会被CGroup无情地kill掉。因此在比赛开始没多久的时候我就研究了一下使用怎样的HashMap可以达到内存最简的状况。在这个过程中,顺便使用了JMH来分析了一下几个侯选库的性能。因为初赛相对来说比较简单,而且HashMap实际上在复赛时候的Range操作上没有发挥余地,所以我决定将这篇写下来分享给大家,希望能帮助更多对比赛有兴趣的同学找到一个比较好的入手点。 之前的初赛简单思路可以看这里。 侯选的集合库 我们能第一时间想到的最朴素最直接的候选者就是Java自带的HashMap了,这是我们平时使用最多也是最熟悉的实现。只不过在这里因为性能和内存消耗的原因,它稍微有点不合适。其实市面上有很多其他优秀的集合库实现的,我在这里大致列一下我这边会测试的几个: FastUtil: 一个意大利的计算机博士开发的...
- 下一篇
JavaScript学习(五)
目录 条件判断语句: if语句: if...else语句 switch语句 while语句 do...while语句 for循环语句 跳转语句: continue语句 break语句 条件判断语句: if语句: if条件判断语句是最基本、最常用的流程控制语句,可以根据条件表达式的值执行相应的处理。 简单的if语句的语法格式如下: if(expression){ statement 1 } expression:必选项,用于指定条件表达式,可以使用逻辑运算符。 statement 1:用于指定要执行的语句序列。当expression的值为true时,执行该语句序列,简单if语句的执行流程如下图。 if...else语句 if...else语句是if语句的标准形式,在if语句简单形式的基础之上增加一个else从句,当expression的值是false时则执行else从句中的内容。 if...else语句格式如下: if(expression){ statement 1 } else{ statement2 } 在if语句的标准形式中,首先对expression的值进行判断,如果它的值...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Hadoop3单机部署,实现最简伪集群
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS8编译安装MySQL8.0.19