import requests
import timer
from bs4 import BeautifulSoup
import demjson
import asyncio
import pymysql
import pandas as pd
from sqlalchemy import create_engine
# 首先我们写好抓取网页的函数def get_html(url):headers = {'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8','user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36',}# 爬虫模拟访问信息r = requests.get(url, timeout=30,headers=headers)r.raise_for_status()r.endcodding = 'utf-8'#print(r.text)return r.textdef get_content(url):html = get_html(url)try:s=demjson.decode(html) # JSON 字符串解码为 Python dictexcept:print("jsonload error")commentlist = []#hlist = []#hlist.append("名字")#hlist.append("评论")#commentlist.append(hlist)num=len(s['data']['replies']) # 获取每页评论栏的数量#print(num)i=0while (i<num):comment=s['data']['replies'][i]# 获取每栏评论blist = []username = comment['member']['uname']content = comment['content']['message']blist.append(username)blist.append(content)commentlist.append(blist)i=i+1#print(str(commentlist))writePage(commentlist)def writePage(urating):dataframe = pd.DataFrame(urating)dataframe.to_csv('B_comments.csv', mode ='a', index = False, sep =',', header = False, encoding='utf_8_sig')#每次运行前需要将B_comments文件删除,因为选择的是append模式。在原有基础上添加#conInfo = "mysql+pymysql://root:luhan0420@localhost:3306/comments?charset=utf8"#engine = create_engine(conInfo,encoding='utf-8')#dataframe.to_sql(name = 'comment',con = engine,if_exits = 'append',index = False,index_label = 'id')#pymysql.connect(host='localhost',port=3306,user='root',passwd='luhan0420',db='comments',charset='utf8')if __name__ == '__main__':e=0page=1while e == 0 :url = "https://api.bilibili.com/x/v2/reply?pn="+ str(page)+"&type=1&oid=800760067&sort=2"try:print('---'*20)get_content(url)print(url)page=page+1# 为了降低被封ip的风险,每爬20页便歇5秒。async def display(page):await asyncio.sleep(5)if page%10 == 0:asyncio.run(display(page))except:e=1

输出结果:
每次运行前需要将B_comments文件删除,因为选择的是append模式。在原有基础上添加

------------------------------------------------------------
[['食贫道', '[呆][呆][呆]你来了嘿!'], ['毕导THU', '我是冰冰仅有的3个关注之一[tv_doge]我和冰冰贴贴'], ['老师好我叫何同学', '[热词系列_知识增加]'], ['央视网快看', '冰冰来了!我们要失业了吗[doge][doge]'], ['厦门大学', '哇欢迎冰冰!!!'], ['吉林大学', '铁锅大酱胖头鱼,真香[热词系列_妙啊]'], ['陈睿', '这惊人的播放量增长速度'], ['哔哩哔哩漫画', '今天,天气好冷,我的心是冰冰的'], ['武汉大学', '武汉最近好冷,小武的手都是冰冰的[tv_doge]'], ['华中科技大学', '武汉好冷,小科最近也是冰冰的[tv_微笑][tv_微笑]'], ['电网头条', '在冰冰面前,我依然电力十足'], ['BilibiliWorld园长', '小园长的心也是冰冰的[星星眼]欢迎下次来BW一起玩耍哦哔哩[BW2020_欢迎]'], ['内蒙古农业大学', '冰冰姐姐,我是小草,还记得我吗[鼓掌][鼓掌][鼓掌]'], ['共青团中央', '学习新思想[doge]'], ['边检小花', '哇,我发现了什么[星星眼]'], ['特效小哥studio', '今天早上被冷醒了,我说难怪'], ['河南共青团', '都让让,都让让!俺来给冰冰打个招呼[doge]有空来俺河南看看!鲤鱼												

【爬虫】爬取冰冰第一条视频,保存至csv文件(多页爬取)相关推荐

  1. 【Class 20】【实例】python 爬虫简单案例实现二---将数据保存为CSV文件

    摘抄一位网友的写入和读取csv的代码: #输出数据写入CSV文件 import csv data = [("Mike", "male", 24),(" ...

  2. BS4爬取电影天堂的下载地址并保存至csv文件

    思路:BS4爬取电影天堂中最新电影名称及下一级链接中的下载地址,结果保存至csv文件 存在问题及需要完善(恳请各位大神提供帮助): (1)采集结果中的下载链接存在乱码: (2)代码需要优化. # co ...

  3. 和讯网债券数据Python爬取保存成CSV文件之一

    本文讲述国债数据使用python爬取的方式,并将得到的数据保存成CSV文件以日期命名,方便后期处理. 具体代码如下所示: import requests from bs4 import Beautif ...

  4. Python爬取售房信息并保存至CSV文件

    Python爬取售房信息并保存至CSV文件 在上一篇文章: Python爬取租房信息并保存至Excel文件,介绍了如何使用Python爬取租房信息并保存至Excel文件,在本案例中则是使用Python ...

  5. 爬取豆瓣音乐TOP250数据保存到csv文件和xls文件

    爬取的目标网址:https://music.douban.com/top250 利用lxml库,获取前10页的信息,需要爬取的信息包括歌曲名.表演者.流派.发行时间.评分和评论人数,把这些信息存到cs ...

  6. python日志保存为html文件,用 Python 抓取公号文章保存成 HTML

    上次为大家介绍了如果用 Python 抓取公号文章并保存成 PDF 文件存储到本地.但用这种方式下载的 PDF 只有文字没有图片,所以只适用于没有图片或图片不重要的公众号,那如果我想要图片和文字下载下 ...

  7. mysql存储csv文件_MySQL 查询结果保存为CSV文件

    MySQL支持将查询结果直接导出为文本格式,格式如下: into outfile '导出的目录和文件名'                  指定导出的目录和文件名 fields terminated ...

  8. 从Matlab的Fig图片中提取数据,并保存成csv文件

    从Matlab的Fig图片中提取数据,并保存成csv文件 1.Fig图像是由单条曲线绘制 2.Fig图像是由双条曲线绘制 3.小结 本人亲自实测有效,但能力有限,目前仅用代码测试了 Figure图片单 ...

  9. python pandas 把数据保存成csv文件,以及读取csv文件获取指定行、指定列数据

    文章目录: 1 数据说明 2 把数据集文件信息使用python pandas保存成csv文件 3 使用python pandas 读取csv的每行.每列数据 1 数据说明 1.在test_data目录 ...

最新文章

  1. HOG可视化 opencv
  2. Spring Boot是如何实现自动配置的?
  3. [转载] 杜拉拉升职记——07 管理者关心细节吗?
  4. vb.net textbox如何输入的时候显示提示文字_如何快速上手CAD?这15种教课书式的ideas请你收下...
  5. Java-开源工具类
  6. inner join,left join,right join 三者的用法
  7. 寂寞了就去搞钱?俞敏洪举报“俞敏洪”:“搞钱论”没一句话是我说的
  8. 华为重磅新品来了!已通过3C认证 由京东方代工
  9. UVA11192 Group Reverse【水题】
  10. 订阅付费专栏,支付299.9元,免费送代码
  11. 批处理Bat教程-第一章:前言
  12. 电动机正反转继电器控制系统
  13. Python读书笔记
  14. C语言基础练习100--008(输出国际象棋棋盘)
  15. 视频教程-以太坊区块链实战视频教程(全球同步升级)-区块链
  16. p3110 二叉堆练习3--排序
  17. 大数据可视化设计师丹尼斯_自助数据可视化设计师如何谋生
  18. oracle循环数据字典,Oracle DUL工作原理和技术实现
  19. Hostapd的安装与使用
  20. web端引入高德地图

热门文章

  1. 基本BASH SHELL脚本命令——Linux系统管理命令-检测程序、检测磁盘空间
  2. java getchildren用法_Java ZkClient.getChildren方法代碼示例
  3. 佳点集java_java实现遗传算法实例分享(打印城市信息)
  4. python爬取qq音乐评论_爬虫:QQ音乐评论
  5. php能转换音频采样率吗,音频采样频率怎么设置-音频采样率转换软件下载
  6. 互动留言赠书:《Oracle高性能系统实战大全》
  7. 日均5亿查询量的京东订单中心,为什么舍MySQL用ElasticSearch?
  8. 归并排序,我举个例子你就看懂了
  9. 足不出户带你体验专业实验室,技术实现不在话下
  10. Netty实现丢弃服务协议(Netty4.X学习一)