文章介绍

本文主要讲述了利用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编程公园相关推荐

  1. 数据分析调研报告_CodingPark编程公园

    文章结构速览 关系梳理 数据挖掘:从海量数据中找到隐藏的规则,数据分析:待分析的目标比较明确 数据分析更侧重业务,一般分析的目标比较明确,重点在观察数据,得出结论: 数据挖掘更侧重技术,利用统计学/机 ...

  2. 数据可视化与文本分类_CodingPark编程公园

    文章流程 预备知识 数据可视化 语料获取 数据预处理 探索数据分布 词统计图像可视化与词云图 文本分类 文本向量化 - bag+tfidf 分类模型 预备知识 read_csv 与 to_csv 方法 ...

  3. kafka基础入门_CodingPark编程公园

    文章介绍 本文是kafka基础入门篇,讲解内容包括: 1. 消息队列对比表 2. Kafka概念及特性 3. kafka总体结构 4. kafka各项配置 5. 生产者 6. kafka Broker ...

  4. 人工智能中神经网络与自然语言处理共生关系_CodingPark编程公园

    文章目录 神经网络知识大串联 1:第一代的神经元模型 3 2:从M-P模型到感知器模型 3 3:前馈神经网络 3 4:后向传播与BP算法神经网络 4 5:深度神经网络DNN 4 6:卷积神经网络CNN ...

  5. Gensim库生成与导入W2V模型_CodingPark编程公园

    Gensim库生成与导入W2V模型 语料目录 gensim函数库Word2Vec配置参数 gensim.models.word2vec.Word2Vec(sentences=None,size=100 ...

  6. Linux压缩|解压_CodingPark编程公园

    文章介绍 本文主要介绍: Linux的基础参数 Linux压缩 Linux解压缩 基础参数 tar - 5大参数 -c:压缩 -x:解压 -t:查看内容 -r:向压缩归档文件末尾追加文件 -u:更新原 ...

  7. anaconda-navigaotr出现adding featured channels并无法正常打开_CodingPark编程公园

    问题 navigator无法打开.停在adding featured channels状态下. 解决 在mac终端下更新navigator 输入 conda install navigator 即可解 ...

  8. 谈谈池化吧!_CodingPark编程公园

    引子 下采样和池化应该是包含关系,池化属于下采样,而下采样不局限于池化,如果卷积 stride=2,此时也可以把这种卷积叫做下采样. 池化 通常池化层紧跟在 CNN 的卷积层之后. 池化方法: max ...

  9. GPU概述_CodingPark编程公园

    GPU和CPU的区别 设计目标 CPU:处理各种不同的数据类型,同时又要逻辑判断又会引入大量的分支跳转和中断的处理 GPU:处理类型高度统一的.相互无依赖的大规模数据,不需要被打断的纯净的计算环境 G ...

最新文章

  1. Verilog RTL 代码设计示例
  2. gnokii 中文安装使用文档
  3. 对js面向对象的理解
  4. 笔记-信息系统开发基础-信息系统开发模型
  5. mysql 失效转移_MySQL基于MHA的FailOver过程
  6. html5中行内样式写法,react怎么写行内样式?
  7. 欧氏空间内积定义_三、n维空间简介(6)矢量平移和测地线
  8. 2.请求安全-- MD5的必要性以及实际应用场景
  9. c语言程序与设计第三版-苏小红--第一轮学习笔记、难点整理
  10. python爬取豆瓣电影排行榜_爬取豆瓣电影排名的代码以及思路
  11. JSON解析(C++)
  12. python实现的个人税后工资计算器
  13. QTP自动例子的源码分析--OpenOrder
  14. 小乌龟git remote: error报错解决
  15. 五点菱形格式MATLAB,五点菱形格式-拉普拉斯第一边值问题-计算实习报告.docx
  16. win10无线投屏_原来小米的投屏功能,如此强大,每天都偷偷用,秒杀4k电视
  17. eclipse、xbuilder、电脑、键盘、黑峡谷常用快捷键、纽曼蓝牙耳机
  18. mysql建库图解_MySQL数据库安装图解
  19. 南卡OE Pro上线!开放式耳机新里程碑!前所未有的音质舒适双冠
  20. PhoneGapjQuery Mobile应用开发环境配置(For Android)

热门文章

  1. html表格边框仅一条线,css 设置table边线 为一条线
  2. CODEVS 1690 开关灯
  3. 不要等账户出问题再来找亚马逊官方联系方式
  4. matlab对矩阵拟合,matlab曲线拟合与矩阵计算.ppt
  5. 抽象函数的对称性和周期性
  6. (一)caffenet 训练自己的数据集
  7. 如何检查您的iPhone是否翻新
  8. 使用Python自动生成报表以邮件发送
  9. R语言基于mediation包行中介效应分析
  10. 如何在网页上实现音乐播放?