使用spyder编写爬虫_CodingPark编程公园
文章介绍
本文主要讲述了利用Anaconda spyder进行爬虫编写
使用spyder编写爬虫
准备工作
这次我们使用 heartbeat -> cid
我们拿到cid之后就可以去检查一下是否可以获取弹幕了。获取的固定xml格式是:
https://comment.bilibili.com/视频的cid.xml
例如在这里我们的页面就是:
'https://comment.bilibili.com/94198756.xml'
我们把这个链接用网页的方式打开,就能看到如下内容:
这样我们就确定可以爬取了
需要注意的坑
1
每行脚本按 command + 回车 —> 执行
⚠️每行都需执行一次
2
可以不写print语句
而选取所要print的部分进行 ** command + 回车 —> 执行** 输出
3
终端输出信息不完全
pd.set_option(‘display.max_rows’,n)将看不到的行显示完整
import numpy as np
import pandas as pd
pd.set_option('display.max_columns',10)
pd.set_option('display.max_rows',100) #设置最大可见100行
df=pd.DataFrame(np.random.rand(100,10))
df.head(100)
pd.set_option(‘display.max_columns’,n)将看不到的列显示完整
import numpy as np
import pandas as pd
pd.set_option('display.max_columns',10) #给最大列设置为10列
df=pd.DataFrame(np.random.rand(2,10))
df.head()
完整代码(基础功能)
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Sat May 9 17:34:24 2020@author: atom-g
"""import requests
from bs4 import BeautifulSoup
import pandas as pd # 数据处理(美化)url = 'https://comment.bilibili.com/83089367.xml'
request = requests.get(url)
request.status_code # 200
request.encoding = 'utf-8'
request.textsoup = BeautifulSoup(request.text,'lxml')results = soup.find_all('d')
type(results) # s4.element.ResultSet# 我们要转换成list 才能.text 取出文字
comments = [comment.text for comment in results]
# 接下来 我一条一条刷 我这么写为了读者看的清每一步操作
comments = [comment.upper() for comment in comments] # 大写
comments = [comment.replace(' ','') for comment in comments ] # 去除空格# 引入stop_words
stop_words = ['▄▅▆▇█▇▆▅▄▄▅▆▇█▇▆▅▄▄▅▆▇█▇▆▅▄▄▅▆▇█▇▆▅▄▄▅▆▇█▇▆▅▄▄▅▆▇█▇▆▅▄▄▅▆▇█▇▆▅▄▄▅▆▇█▇▆▅▄▄▅▆▇█▇▆▅','▄▅▆▇█▇▆▅▄▄▅▆▇█▇▆▅▄▄▅▆▇█▇▆▅▄▄▅▆▇█▇▆▅▄▄▅▆▇█▇▆▅▄▄▅▆▇█▇▆▅▄▄▅▆▇█▇▆▅▄▄▅▆▇█▇▆▅▄▄▅▆▇█▇▆▄▄▅▆▇█▇▆▅▄▄▅▆▇█▇▆▅▄▄']comments_fin = [comment for comment in comments if comment not in stop_words]pd.set_option('display.max_rows',100000) #设置最大可见行
catalog = pd.DataFrame({'DanMu':comments_fin})
cipin = catalog['DanMu'].value_counts()
输出信息
完整代码(Plus)
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Sat May 9 17:34:24 2020@author: atom-g
"""import requests
from bs4 import BeautifulSoup
import pandas as pd # 数据处理(美化)
import numpy as npurl = 'https://comment.bilibili.com/83089367.xml'
request = requests.get(url)
request.status_code # 200
request.encoding = 'unicode'
request.textsoup = BeautifulSoup(request.text,'lxml')results = soup.find_all('d')
type(results) # s4.element.ResultSet# 我们要转换成list 才能.text 取出文字
comments = [comment.text for comment in results]
# 接下来 我一条一条刷 我这么写为了读者看的清每一步操作
comments = [comment.upper() for comment in comments] # 大写
comments = [comment.replace(' ','') for comment in comments ] # 去除空格# 引入stop_words
stop_words = ['▄▅▆▇█▇▆▅▄▄▅▆▇█▇▆▅▄▄▅▆▇█▇▆▅▄▄▅▆▇█▇▆▅▄▄▅▆▇█▇▆▅▄▄▅▆▇█▇▆▅▄▄▅▆▇█▇▆▅▄▄▅▆▇█▇▆▅▄▄▅▆▇█▇▆▅','▄▅▆▇█▇▆▅▄▄▅▆▇█▇▆▅▄▄▅▆▇█▇▆▅▄▄▅▆▇█▇▆▅▄▄▅▆▇█▇▆▅▄▄▅▆▇█▇▆▅▄▄▅▆▇█▇▆▅▄▄▅▆▇█▇▆▅▄▄▅▆▇█▇▆▄▄▅▆▇█▇▆▅▄▄▅▆▇█▇▆▅▄▄',',','!',']','。']comments_fin = [comment for comment in comments if comment not in stop_words]pd.set_option('display.max_rows',100000) # 设置最大可见100行
catalog = pd.DataFrame({'DanMu':comments_fin})
cipin = catalog['DanMu'].value_counts()import jiebaDanMustr = ''.join(i for i in comments_fin if i not in stop_words) # 拼成串words = list(jieba.cut(DanMustr))
words_fin_DanMustr = [word for word in words if word not in stop_words] # 这里我学到了stop_word需完全对应才可
words_fin_DanMustr_str = ','.join(words_fin_DanMustr)
# py 生成本地txt
file_handle=open('/Users/atom-g/spyder/Cai.txt',mode='w')
file_handle.write(words_fin_DanMustr_str)
file_handle.close()words_fin = [i for i in words if len(i)>1]# np.set_printoptions(threshold=1e6) #利用np全部输出
# cc = np.array(words_fin)
# cc.tofile('/Users/atom-g/spyder/Cai.txt') # txt至本地import wordcloud # 生成词云
wc = wordcloud.WordCloud(height = 1000, width = 1000, font_path = 'simsun.ttc')
wc.generate(' '.join(words_fin))from matplotlib import pyplot as pltplt.imshow(wc)
wc.to_file('/Users/atom-g/spyder/Cai.png') # 图片至本地
输出信息
✏️Python-list转字符串
命令:''.join(list)
其中,引号中是字符之间的分割符,如“,”,“;”,“\t”等等
如:
list = [1, 2, 3, 4, 5]
''.join(list) 结果即为:12345
','.join(list) 结果即为:1,2,3,4,5
✏️Python-字符串转list
print list('12345')
输出: ['1', '2', '3', '4', '5']
print list(map(int, '12345'))
输出: [1, 2, 3, 4, 5]str2 = "123 sjhid dhi"
list2 = str2.split() #or list2 = str2.split(" ")
print list2
['123', 'sjhid', 'dhi']str3 = "www.google.com"
list3 = str3.split(".")
print list3
['www', 'google', 'com']
✏️Python-生成本地txt模式
特别鸣谢
使用spyder编写爬虫_CodingPark编程公园相关推荐
- 数据分析调研报告_CodingPark编程公园
文章结构速览 关系梳理 数据挖掘:从海量数据中找到隐藏的规则,数据分析:待分析的目标比较明确 数据分析更侧重业务,一般分析的目标比较明确,重点在观察数据,得出结论: 数据挖掘更侧重技术,利用统计学/机 ...
- 数据可视化与文本分类_CodingPark编程公园
文章流程 预备知识 数据可视化 语料获取 数据预处理 探索数据分布 词统计图像可视化与词云图 文本分类 文本向量化 - bag+tfidf 分类模型 预备知识 read_csv 与 to_csv 方法 ...
- kafka基础入门_CodingPark编程公园
文章介绍 本文是kafka基础入门篇,讲解内容包括: 1. 消息队列对比表 2. Kafka概念及特性 3. kafka总体结构 4. kafka各项配置 5. 生产者 6. kafka Broker ...
- 人工智能中神经网络与自然语言处理共生关系_CodingPark编程公园
文章目录 神经网络知识大串联 1:第一代的神经元模型 3 2:从M-P模型到感知器模型 3 3:前馈神经网络 3 4:后向传播与BP算法神经网络 4 5:深度神经网络DNN 4 6:卷积神经网络CNN ...
- Gensim库生成与导入W2V模型_CodingPark编程公园
Gensim库生成与导入W2V模型 语料目录 gensim函数库Word2Vec配置参数 gensim.models.word2vec.Word2Vec(sentences=None,size=100 ...
- Linux压缩|解压_CodingPark编程公园
文章介绍 本文主要介绍: Linux的基础参数 Linux压缩 Linux解压缩 基础参数 tar - 5大参数 -c:压缩 -x:解压 -t:查看内容 -r:向压缩归档文件末尾追加文件 -u:更新原 ...
- anaconda-navigaotr出现adding featured channels并无法正常打开_CodingPark编程公园
问题 navigator无法打开.停在adding featured channels状态下. 解决 在mac终端下更新navigator 输入 conda install navigator 即可解 ...
- 谈谈池化吧!_CodingPark编程公园
引子 下采样和池化应该是包含关系,池化属于下采样,而下采样不局限于池化,如果卷积 stride=2,此时也可以把这种卷积叫做下采样. 池化 通常池化层紧跟在 CNN 的卷积层之后. 池化方法: max ...
- GPU概述_CodingPark编程公园
GPU和CPU的区别 设计目标 CPU:处理各种不同的数据类型,同时又要逻辑判断又会引入大量的分支跳转和中断的处理 GPU:处理类型高度统一的.相互无依赖的大规模数据,不需要被打断的纯净的计算环境 G ...
最新文章
- Verilog RTL 代码设计示例
- gnokii 中文安装使用文档
- 对js面向对象的理解
- 笔记-信息系统开发基础-信息系统开发模型
- mysql 失效转移_MySQL基于MHA的FailOver过程
- html5中行内样式写法,react怎么写行内样式?
- 欧氏空间内积定义_三、n维空间简介(6)矢量平移和测地线
- 2.请求安全-- MD5的必要性以及实际应用场景
- c语言程序与设计第三版-苏小红--第一轮学习笔记、难点整理
- python爬取豆瓣电影排行榜_爬取豆瓣电影排名的代码以及思路
- JSON解析(C++)
- python实现的个人税后工资计算器
- QTP自动例子的源码分析--OpenOrder
- 小乌龟git remote: error报错解决
- 五点菱形格式MATLAB,五点菱形格式-拉普拉斯第一边值问题-计算实习报告.docx
- win10无线投屏_原来小米的投屏功能,如此强大,每天都偷偷用,秒杀4k电视
- eclipse、xbuilder、电脑、键盘、黑峡谷常用快捷键、纽曼蓝牙耳机
- mysql建库图解_MySQL数据库安装图解
- 南卡OE Pro上线!开放式耳机新里程碑!前所未有的音质舒适双冠
- PhoneGapjQuery Mobile应用开发环境配置(For Android)
热门文章