## 功能
连续获取一个或多个**微博关键词搜索**结果,并将结果写入文件(可选)、数据库(可选)等。所谓微博关键词搜索即:**搜索正文中包含指定关键词的微博**,可以指定搜索的时间范围。<br>
举个栗子,比如你可以搜索包含关键词“迪丽热巴”且发布日期在2020-03-01和2020-03-16之间的微博。搜索结果数量巨大,对于非常热门的关键词,在一天的指定时间范围,可以获得**1000万**以上的搜索结果。注意这里的一天指的是时间筛选范围,具体多长时间将这1000万微博下载到本地还要看获取的速度。1000万只是一天时间范围可获取的微博数量,如果想获取更多微博,可以加大时间范围,比如10天,最多可以获得1000万X10=1亿条搜索结果,当然你也可以再加大时间范围。对于大多数关键词,微博一天产生的相关搜索结果应该低于1000万,因此可以说**本程序可以获取指定关键词的全部或近似全部的搜索结果**。本程序可以获得几乎全部的微博信息,如微博正文、发布者等,详情见[输出](#输出)部分。支持输出多种文件类型,具体如下:
- 写入**csv文件**(默认)
- 写入**MySQL数据库**(可选)
- 写入**MongoDB数据库**(可选)
- 下载微博中的**图片**(可选)
- 下载微博中的**视频**(可选)
## 输出
- 微博id:微博的id,为一串数字形式
- 微博bid:微博的bid
- 微博内容:微博正文
- 头条文章url:微博中头条文章的url,若某微博中不存在头条文章,则该值为''
- 原始图片url:原创微博图片和转发微博转发理由中图片的url,若某条微博存在多张图片,则每个url以英文逗号分隔,若没有图片则值为''
- 视频url: 微博中的视频url和Live Photo中的视频url,若某条微博存在多个视频,则每个url以英文分号分隔,若没有视频则值为''
- 微博发布位置:位置微博中的发布位置
- 微博发布时间:微博发布时的时间,精确到天
- 点赞数:微博被赞的数量
- 转发数:微博被转发的数量
- 评论数:微博被评论的数量
- 微博发布工具:微博的发布工具,如iPhone客户端、HUAWEI Mate 20 Pro等,若没有则值为''
- 话题:微博话题,即两个#中的内容,若存在多个话题,每个url以英文逗号分隔,若没有则值为''
- @用户:微博@的用户,若存在多个@用户,每个url以英文逗号分隔,若没有则值为''
- 原始微博id:为转发微博所特有,是转发微博中那条被转发微博的id,那条被转发的微博也会存储,字段和原创微博一样,只是它的本字段为空
- 结果文件:保存在当前目录“结果文件”文件夹下以关键词为名的文件夹里
- 微博图片:微博中的图片,保存在以关键词为名的文件夹下的images文件夹里
- 微博视频:微博中的视频,保存在以关键词为名的文件夹下的videos文件夹里
## 使用说明
本程序的所有配置都在setting.py文件中完成,该文件位于“weibo-search\weibo\settings.py”。
### 1.下载脚本
```bash
$ git clone https://github.com/dataabc/weibo-search.git
```
### 2.安装Scrapy
本程序依赖Scrapy,要想运行程序,需要安装Scrapy。如果系统中没有安装Scrapy,请根据自己的系统安装Scrapy,以Ubuntu为例,可以使用如下命令:
```bash
$ pip install scrapy
```
### 3.安装依赖
```
$ pip install -r requirements.txt
```
### 4.设置cookie
DEFAULT_REQUEST_HEADERS中的cookie是我们需要填的值,如何获取cookie详见[如何获取cookie](#如何获取cookie),获取后将"your cookie"替换成真实的cookie即可。
### 5.设置搜索关键词
修改setting.py文件夹中的KEYWORD_LIST参数。
如果你想搜索一个关键词,如“迪丽热巴”:
```
KEYWORD_LIST = ['迪丽热巴']
```
如果你想分别搜索多个关键词,如想要分别获得“迪丽热巴”和“杨幂”的搜索结果:
```
KEYWORD_LIST = ['迪丽热巴', '杨幂']
```
如果你想搜索同时包含多个关键词的微博,如同时包含“迪丽热巴”和“杨幂”微博的搜索结果:
```
KEYWORD_LIST = ['迪丽热巴 杨幂']
```
如果你想搜索微博话题,即包含#的内容,如“#迪丽热巴#”:
```
KEYWORD_LIST = ['#迪丽热巴#']
```
也可以把关键词写进txt文件里,然后将txt文件路径赋值给KEYWORD_LIST,如:
```
KEYWORD_LIST = 'keyword_list.txt'
```
txt文件中每个关键词占一行。
### 6.设置搜索时间范围
START_DATE代表搜索的起始日期,END_DATE代表搜索的结束日期,值为“yyyy-mm-dd”形式,程序会搜索包含关键词且发布时间在起始日期和结束日期之间的微博(包含边界)。比如我想筛选发布时间在2020-06-01到2020-06-02这两天的微博:
```
START_DATE = '2020-06-01'
END_DATE = '2020-06-02'
```
### 7.设置FURTHER_THRESHOLD(可选)
FURTHER_THRESHOLD是程序是否进一步搜索的阈值。一般情况下,如果在某个搜索条件下,搜索结果很多,则搜索结果应该有50页微博,多于50页不显示。当总页数等于50时,程序认为搜索结果可能没有显示完全,所以会继续细分。比如,若当前是按天搜索的,程序会把当前的1个搜索分成24个搜索,每个搜索条件粒度是小时。这样就能获取在天粒度下无法获取完全的微博。同理,如果小时粒度下总页数仍然是50,会继续细分,以此类推。然而,有一些关键词,搜索结果即便很多,也只显示40多页。所以此时如果FURTHER_THRESHOLD是50,程序会认为只有这么多微博,不再继续细分,导致很多微博没有获取。因此为了获取更多微博,FURTHER_THRESHOLD应该是小于50的数字。但是如果设置的特别小,如1,这样即便结果真的只有几页,程序也会细分,这些没有必要的细分会使程序速度降低。因此,建议**FURTHER_THRESHOLD的值设置在40与46之间**:
```
FURTHER_THRESHOLD = 46
```
### 8.设置结果保存类型(可选)
ITEM_PIPELINES是我们可选的结果保存类型,第一个代表去重,第二个代表写入csv文件,第三个代表写入MySQL数据库,第四个代表写入MongDB数据库,第五个代表下载图片,第六个代表下载视频。后面的数字代表执行的顺序,数字越小优先级越高。如果你只要写入部分类型,可以把不需要的类型用“#”注释掉,以节省资源;如果你想写入数据库,需要在setting.py填写相关数据库的配置。
### 9.设置等待时间(可选)
DOWNLOAD_DELAY代表访问完一个页面再访问下一个时需要等待的时间,默认为10秒。如我想设置等待15秒左右,可以修改setting.py文件的DOWNLOAD_DELAY参数:
```
DOWNLOAD_DELAY = 15
```
### 10.设置微博类型(可选)
WEIBO_TYPE筛选要搜索的微博类型,0代表搜索全部微博,1代表搜索全部原创微博,2代表热门微博,3代表关注人微博,4代表认证用户微博,5代表媒体微博,6代表观点微博。比如我想要搜索全部原创微博,修改setting.py文件的WEIBO_TYPE参数:
```
WEIBO_TYPE = 1
```
### 11.设置包含内容(可选)
CONTAIN_TYPE筛选结果微博中必需包含的内容,0代表不筛选,获取全部微博,1代表搜索包含图片的微博,2代表包含视频的微博,3代表包含音乐的微博,4代表包含短链接的微博。比如我想筛选包含图片的微博,修改setting.py文件的CONTAIN_TYPE参数:
```
CONTAIN_TYPE = 1
```
### 12.筛选微博发布地区(可选)
REGION筛选微博的发布地区,精确到省或直辖市,值不应包含“省”或“市”等字,如想筛选北京市的微博请用“北京”而不是“北京市”,想要筛选安徽省的微博请用�
没有合适的资源?快使用搜索试试~ 我知道了~
Scrapy微博爬虫-根据关键词爬取相关微博帖子信息
共46个文件
xml:10个
py:10个
pyc:9个
需积分: 0 48 下载量 189 浏览量
2023-01-12
09:52:04
上传
评论 7
收藏 6.42MB RAR 举报
温馨提示
主要使用Python中第三方库Scrapy爬虫框架,首先你需要阅读README.md文件说明,然后输入你的微博cookie,然后输入关键词、爬取日期等等信息,最后运行即可。
资源推荐
资源详情
资源评论
收起资源包目录
Python微博爬虫.rar (46个子文件)
github上的微博爬虫
scrapy.cfg 253B
.idea
workspace.xml 3KB
misc.xml 192B
inspectionProfiles
Project_Default.xml 1KB
profiles_settings.xml 174B
github上的微博爬虫.iml 489B
modules.xml 307B
.gitignore 190B
requirements.txt 14B
weibo
__init__.py 0B
pipelines.py 8KB
结果文件
老孙家饭庄
老孙家饭庄.csv 613KB
同盛祥
同盛祥.csv 13KB
德发长
德发长.csv 16KB
春发生饭店
春发生饭店.csv 72KB
世界杯
世界杯.csv 65.54MB
crawls
search
requests.seen 401KB
spider.state 5B
requests.queue
0 410KB
1 30KB
active.json 2B
utils
__init__.py 0B
util.py 3KB
__pycache__
region.cpython-310.pyc 11KB
util.cpython-310.pyc 3KB
__init__.cpython-310.pyc 167B
region.py 14KB
.idea
weibo.iml 490B
workspace.xml 4KB
misc.xml 193B
inspectionProfiles
Project_Default.xml 1KB
profiles_settings.xml 174B
modules.xml 269B
.gitignore 190B
spiders
__init__.py 161B
__pycache__
__init__.cpython-310.pyc 169B
search.cpython-310.pyc 14KB
search.py 25KB
items.py 764B
settings.py 4KB
__pycache__
items.cpython-310.pyc 699B
__init__.cpython-310.pyc 161B
pipelines.cpython-310.pyc 7KB
settings.cpython-310.pyc 2KB
middlewares.py 4KB
README.md 10KB
共 46 条
- 1
资源评论
艾派森
- 粉丝: 21w+
- 资源: 70
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功