新浪微博网页版微信登录入口 新浪微博网页版 新浪网页版电脑版( 二 )


在setting.py配置爬虫这次我只将内容导出到了csv文件中 , 方便后续筛选制作词云 , 如果爬取的数据较多的话 , 可以存储到数据库中 。
BOT_NAME = 'sinaweibo'?SPIDER_MODULES = ['sinaweibo.spiders']NEWSPIDER_MODULE = 'sinaweibo.spiders'?USER_AGENT: 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36' 消息头DOWNLOAD_DELAY = 0.5 延时0.5s Crawl responsibly by identifying yourself (and your website) on the user-agentUSER_AGENT = 'sinaweibo (+http://www.yourdomain.com)'FEED_URI = 'file:C:/Users/lenovo/Desktop/weibo.csv' 存入文件位置FEED_FORMAT = 'csv' 保存格式ITEM_PIPELINES= {'sinaweibo.pipelines.SinaweiboPipeline': 300} 管道设置 Obey robots.txt rulesROBOTSTXT_OBEY = FalseFEED_EXPORT_ENCODING = 'UTF8' 编码格式本次没有下载图片及其他内容了 , 因此pipelines.py文件就没有编写内容了 。爬取的部分数据如下:

新浪微博网页版微信登录入口 新浪微博网页版 新浪网页版电脑版

文章插图
到这里爬虫部分就结束了 , 本次爬取的内容也较为简单 , 下面的话就是使用其中的部分数据来生成词云 。
词云制作在文件中新建了一个 weibo_analysis.py 的文件 , 使用jieba库来进行分词 , 在此之前 , 需要先将所需数据提取出来 , 这里使用pandas就可以 。
这部分程序很简单 , 就不废话了 , 直接上代码:
import csvimport pandas as pdimport jieba.analyse'''遇到不懂的问题?Python学习交流群:821460695满足你的需求 , 资料都已经上传群文件 , 可以自行下载!'''def get_ciyun(city): 进行分词 tags=jieba.analyse.extract_tags(str(city),topK=100,withWeight=True) for item in tags: print(item[0]+'\t'+str(int(item[1]*1000)))??need_citys = ['北京', '上海', '湖南', '四川', '广东']beijing = []shanghai = []hunan = []sichuan = []gd = []pd.set_option('expand_frame_repr', True) 可换行显示pd.set_option('display.max_rows', None) 显示所有行pd.set_option('display.max_columns', None) 显示所有列df = pd.read_csv('C:\\Users\lenovo\Desktop\weibo.csv') 读取文件内容并转化为dataframes对象?contents = df['first_news'] 取微博内容city = df['city'] 取城市for i in range(len(city)): if need_citys[0] in city[i]: 判断并存入 beijing.append(contents[i]) elif need_citys[1] in city[i]: shanghai.append(contents[i]) elif need_citys[2] in city[i]: hunan.append(contents[i]) elif need_citys[3] in city[i]: sichuan.append(contents[i]) elif need_citys[4] in city[i]: gd.append(contents[i]) else: pass?输出get_ciyun(beijing)print('-'*20)get_ciyun(shanghai)print('-'*20)get_ciyun(hunan)print('-'*20)get_ciyun(sichuan)print('-'*20)get_ciyun(gd)本次是通过Tagul网站在制作词云 , 将上方输出的词频导入 , 选择好词云形状、字体(不支持中文可自行导入中文字体包)、颜色等点击可视化就能生成了 , 非常方便 。
下面是我本次生成的词云图片:
新浪微博网页版微信登录入口 新浪微博网页版 新浪网页版电脑版

文章插图

新浪微博网页版微信登录入口 新浪微博网页版 新浪网页版电脑版

文章插图

新浪微博网页版微信登录入口 新浪微博网页版 新浪网页版电脑版

文章插图

新浪微博网页版微信登录入口 新浪微博网页版 新浪网页版电脑版

文章插图
Scrapy爬取新浪微博移动版用户首页微博