资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

Python怎样爬取新浪微博数据

这篇文章给大家介绍Python怎样爬取新浪微博数据,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

公司专注于为企业提供成都网站建设、成都做网站、微信公众号开发、商城系统网站开发微信平台小程序开发,软件按需定制网站等一站式互联网企业服务。凭借多年丰富的经验,我们会仔细了解各客户的需求而做出多方面的分析、设计、整合,为客户设计出具风格及创意性的商业解决方案,创新互联公司更提供一系列网站制作和网站推广的服务。

现在就教大家如何批量爬取微博的数据,大大加快数据迁移速度!

我们使用到的是第三方作者开发的爬虫库weiboSpider(有工具当然要用工具啦)。这里默认大家已经装好了Python。

1. 下载项目

进入下方的网址,点击Download ZIP下载项目文件

https://github.com/dataabc/weiboSpider

Python怎样爬取新浪微博数据

或者

你有git的话可以在cmd/terminal中输入以下命令安装

git clone https://github.com/dataabc/weiboSpider.git

2.安装依赖

将该项目压缩包解压后,打开你的cmd/Termianl进入该项目目录,输入以下命令:

pip install -r requirements.txt

便会开始安装项目依赖,等待其安装完成即可。

3.设置cookie

打开weibospider文件夹下的weibospider.py文件,将"your cookie"替换成爬虫微博的cookie,具体替换位置大约在weibospider.py文件的22行左右。cookie获取方法:

3.1 登录微博

Python怎样爬取新浪微博数据

3.2 按F12键或者右键页面空白处—检查,打开开发者工具

Python怎样爬取新浪微博数据

3.3 选择network — 按F5刷新一下 — 选择第一个文件 — 在右边窗口找到cookie

Python怎样爬取新浪微博数据

然后替换大约在weibospider.py文件的22行左右的cookie,如图所示:

替换前:

Python怎样爬取新浪微博数据

替换后:

Python怎样爬取新浪微博数据

4.设置要爬的用户user_id

4.1 获取user_id

点开你希望爬取的用户主页,然后查看此时的url:

你会发现有一串数字在链接中,这个就是我们要用到的userID, 复制即可。

Python怎样爬取新浪微博数据

4.2 设置要爬取的user_id

打开weibospider文件夹下的weibospider.py文件,将我们想要爬取的一个或多个微博的user_id赋值给user_id_list。

user_id设置代码位于weibospider.py的main函数里,具体代码如下:

# 爬单个微博用户,可以改成任意合法的用户id
user_id_list = ['1669879400']

或者

# 爬多个微博用户,可以改成任意合法的用户id
user_id_list = ['1223178222', '1669879400', '1729370543']

或者

"""可以在文件中读取user_id_list,文件中可以包含很多user_id,
每个user_id占一行,文件名任意,类型为txt,位置位于本程序的同目录下,
比如文件可以叫user_id_list.txt"""
user_id_list = wb.get_user_list('user_id_list.txt')

这样我们的基本设置就完成了,当然大家如果有需要还可以设置MySQL数据库和MongoDB数据库写入,如果不设置的话就默认写入到txt和csv文件中。

5. 运行爬虫

打开cmd/terminal 进入该项目目录,输入:

python weibospider.py

即可开始爬取数据了,怎么样,是不是超级方便?而且你还可以自定义爬取的信息,比如微博的起始时间、是否写入数据库,甚至能在它代码的基础上增加新的功能!(比如加个cookie池或者代理池之类的)

关于Python怎样爬取新浪微博数据就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


网页题目:Python怎样爬取新浪微博数据
标题路径:http://cdkjz.cn/article/jioiis.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220