Python菜鸟教程(一)-爬b站数据
来源:互联网 发布:华康字体淘宝可以用吗 编辑:程序博客网 时间:2024/05/22 08:23
BeautifulSoup
BeautifulSoup- 我们爬去网站主要用到的库
安装BeautifulSoup
pip install beautifulsoup4
安装了python的同学应该都知道python的包管理工具pip,这里就不赘述了。
切入点
爬网站主要还是找到一个url,当然有api是最好的,很容易就可以爬到自己想要的数据:
url:http://api.bilibili.com/archive_stat/stat?aid=xxx
# psb站这个请求太频繁的拉数据的话,会被封ip的,我现在正在用手机开着热点,一边在拉数据,一边在写这篇教程
大概抓1w条左右会被检测出来,然后封个5分钟左右ip,很多大佬说,做爬虫要多弄个代理,不会玩。
google了一下,b站用的大概是爬取间隔自适应。就是已经限制了你这个IP的抓取,就不要傻傻重复试,怎么滴也得休息一会。网易云音乐操作起来比较简单,sleep一下就好了。其实sleep的间隔应该按情况累加,比如第一次sleep 10秒,发现还是被约束。那么就sleep 20秒… 这个间隔的设置已经自适应的最终效果是经验值。
贴代码
import jsonfrom bs4 import BeautifulSoupfrom urllib import requestdef getScript(url): head = {} # 这边是要拼个请求头的 head['User-Agent'] = 'Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19' req = request.Request(url, headers = head) response = request.urlopen(req) html = response.read() soup = BeautifulSoup(html, 'lxml') data = json.loads(soup.text) if (data.get("code") ==40003): return False; else: return data.get("data");if __name__=="__main__": for i in range(159007,754613): url = 'http://api.bilibili.com/archive_stat/stat?aid='+str(i) str1 = getScript(url) if str1: # IO操作 with open('D:/result.txt','a+',encoding='utf-8', errors='ignore') as f: f.write(str(str1)) print(str1)
爬取的部分txt
bilibili.txt
一夜之后
经过一夜的爬取,让我们看下爬取的数据
SELECT COUNT(1) FROM video-- 216997select aid av号,`view` 播放量,danmaku 弹幕,favorite 喜欢,coin 硬币,`share` 分享 from video where `view`=(select max(`view`) from video);-- 225094 8024979 471856 25306 15497 10924
抓取到的这个av号去bilibili看一下,居然是天降之物,居然不是fate!
让我们看一下fate的链接:
https://bangumi.bilibili.com/anime/1650
– 哇,一声就哭出来了,mmp
然后搜一下天降之物,有两个链接:
http://www.bilibili.com/video/av225094/https://bangumi.bilibili.com/anime/971/
推断:
b站可能把高点击量的视频都用,一下链接了:
https://bangumi.bilibili.com/anime/id号/
可能也想由http转https,让网站更安全。
好吧,那接下来我们的目标很明确了,就是抓https://bangumi.bilibili.com/anime/id号/
这个链接的数据了。
后记
python还是非常有意思的,尤其是从爬虫这里入门。
跟java比起来更加的轻巧,刚开始学,有些不会的东西也不需要太深究,跟着大佬们敲一敲。
备注一些学习python的资料:
廖雪峰 - Python教程
GitHub上的一些资源
阅读全文
0 0
- Python菜鸟教程(一)-爬b站数据
- 菜鸟python教程,菜鸟的python之路(一)
- SpringBoot菜鸟教程(一)
- 菜鸟学Python(一)
- Python菜鸟教程-笔记
- Java菜鸟教程 基本数据类型(一)
- python(一) A+B
- Python菜鸟教程全目录
- 菜鸟教程python基础总结
- python 菜鸟成长笔记(一)Python学习手册
- Python入门----变量(菜鸟教程的学习笔记)
- Python入门----语句(菜鸟教程的学习笔记)
- [菜鸟必读]关于XML操作的教程(一)
- 从菜鸟到高手的自学linux教程(一)
- 控制系统与MATLAB的菜鸟教程(一)…
- Java菜鸟教程 面向对象初步(一)
- Python教程精华版(一)
- Python Flask教程(一)
- [BZOJ4870][SHOI2017]组合数问题 DP+矩阵快速幂
- xUtils的4个用法
- 【模板】线段树区间修改、区间求和、查询最值
- Balanced Binary Tree:判断一棵树是否为平衡二叉树
- 归并排序
- Python菜鸟教程(一)-爬b站数据
- 实战命令
- [BZOJ4488][JSOI2015]最大公约数 DP+STL
- STL搜索算法小结
- 洛谷 2695 骑士的工作 排序+贪心 解题报告
- 数字黑洞
- 不基于比较的基数排序原理图解
- 全球研发开支排名:亚马逊第一,BATJ排不上号!
- Gartner公布2018十大技术发展趋势 2025年AI重塑商业模式