scrapy实现新浪微博爬虫


当前第2页 返回上一页

对比两次js加载的页面,我们不难发现,Request_URL差别的地方仅仅是在pagebar和_rnd两个参数上,第一个代表页数,第二个是时间的加密(测试不带上也无妨),因此我们仅仅需要构建页数即可。有些微博量巨多的可能还需要翻页,道理相同。

1

2

3

4

5

6

7

8

9

10

11

12

13

class SpiderItem(scrapy.Item):

    # define the fields for your item here like:

    # name = scrapy.Field()

    nickname = scrapy.Field()

    follow = scrapy.Field()

    fan = scrapy.Field()

    weibo_count = scrapy.Field()

    authentication = scrapy.Field()

    address = scrapy.Field()

    graduated = scrapy.Field()

    date = scrapy.Field()

    content = scrapy.Field()

    oid = scrapy.Field()

设置需要爬取的字段nickname昵称,follow关注,fan粉丝,weibo_count微博数量,authentication认证信息,address地址,graduated毕业院校,有些微博不显示的默认设置为空,以及oid和博文内容及发布时间。
这里说一下内容的解析,还是吴彦祖微博,如果我们还是像之前一样直接用scrapy的解析规则去用xpath或者css选择器解析会发现明明结构找的正确却匹配不出数据,这就是微博坑的地方,点开源代码。我们发现:
在这里插入图片描述
微博的主题内容全是用script包裹起来的!!!这个问题当初也是困扰了博主很久,反复换着法子用css和xpath解析始终不出数据。
解决办法:正则匹配(无奈但有效)
至此,就可以愉快的进行采集了,附上运行截图:
在这里插入图片描述
输入导入mongodb:
在这里插入图片描述

相关教程:Python视频教程

以上就是scrapy实现新浪微博爬虫的详细内容,更多文章请关注木庄网络博客!!

返回前面的内容

相关阅读 >>

自己写的Python文件如何相互调用

Python和php哪个难

如何在一个表达式里合并两个字典

Python如何进行进制转换

如何用Python画笑脸

Python如何遍历list

linux自带Python

Python怎么处理dataframe的时间字段

详解Python使用回溯法子集树模板解决迷宫问题

2018年最火的七个Python图形化gui开发框架

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...