-无业游民找工作莫得结果的第四天,继续人间小苦瓜和关键词云的爱恨情仇
-没想到这个还能是一个连续剧(╥╯^╰╥)
快速指路:
1.1腾讯视频弹幕提取并制作关键词云1:弹幕在哪里
1.2腾讯视频弹幕提取并制作关键词云2:scrapy弹幕的获取
1.3企鹅弹幕提取并制作关键词云3:自动爬取全集+sql数据库写入
1.4企鹅弹幕提取并制作关键词云4:jieba分词+collections词频统计+wordcloud制作关键词云
-1.2 scrapy爬取弹幕
scrapy是很早之前跟着巨人的肩膀1b站的教学视频学的,实战的次数很少。每一次实战之后都怀疑自己是不是一个傻子。不过视频是很不错的,如果需要教学视频可以指路巨人的肩膀1。好在研究研究数据还是能够爬下来,赶紧把过程写下来当作日记,也许我哪天又忘了。这回自己当一次自己的巨人。︿( ̄︶ ̄)︿
今天的任务就是先爬取第一集,第一部分。也就是网址:
https://mfm.video.qq.com/danmu?target_id=4048820616%26vid%3Db00318l66nt×tamp=15
环境:python3
库:scrapy,json
编辑器环境:pycharm
因为苹果电脑的scrapy下载不成功,就先用之前配置好环境的windows来爬了。
对于json包下载的时候,也有可能是因为我没有调好兼容性,所以我用pip命令下载了json包之后,在pycharm中写json代码的时候,发现import json报错,因此我又在pycharm里面下载了json。
其实在运行的时候,采用的是cmd命令行,因此怀疑不在pycharm里面下载应该也没问题,可我见不惯报错,就都下载了。如果只是把pycharm当做编辑器的话而且没有强迫症可以选择不在pycharm里面下载。
1.打开cmd 输入:
F:\>scrapy startprojct pythondanmu
就会在当前所在的目录F:下面生成一个叫做pythondamu的工程目录。里面包括了很多文件。
2.进入该目录。输入:
F:\>cd pythondanmu
F:\pythondanmu>scrapy genspider demo pythondanmu.io
生成一个叫demo的爬虫。这一步会多生成一个文件叫demo.py。
pythondanmu的结构为:
pythondanmu/ ----->外层目录
scrapy.cfg ----->部署Scrapy爬虫的配置文件
pythondanmu/ ----->Scrapy框架的用户自定义python代码
_init.py----->初始化脚本
items.py----->Items代码模板(继承类)
middlewares.py----->Middlewares代码模板(继承类)
pipelines.py----->Pipelines代码模板(继承类)
settings.py----->Scrapy爬虫的配置文件
spiders/ ----->Spiders代码模板目录(继承类)
_init .py ----->初始文件,无需修改
_pycache/----->缓存目录,无需修改
demo.py上面命令生成的文件,爬虫的代码写在这个文件里
3.在写爬虫之前,需要在setting配置文件中将默认的
ROBOTSTXT_OBEY = True
改成
ROBOTSTXT_OBEY = False
(对不起腾讯了TnT,我爬数据只是练手,不做任何商业用处,拜托拜托了)
4.编写简易爬虫代码
class DemoSpider(scrapy.Spider):
name = 'demo'
allowed_domains = ['pythondamu.io']
start_urls = ['https://mfm.video.qq.com/danmu?target_id=4048820616%26vid%3Db00318l66nt×tamp=15']
def parse(self, response):
grous=json.loads(response.text)
print(grous)
因为今天只爬取一个页面的文件,所以就只需要在start_urls里面写入爬取页面的网址就可以了。明天再改成多个页面的(对,它现在变成了一部电视连续剧了)
def parse(self,response)
这个函数就是将爬取之后返回的response内容进行处理。刚刚生成的时候函数内容只有pass,说明不做任何处理。
因为返回的是json文件,用json.loads(response.text)的内容读取出来。现不做任何存储处理,直接print出来。
5.运行
F:\pythondamu>scrapy crawl demo
6.结果
巨人的肩膀1