Python菜鸟教程(一)-爬b站数据
2017-11-01 07:57
369 查看
BeautifulSoup
BeautifulSoup- 我们爬去网站主要用到的库安装BeautifulSoup
pip install beautifulsoup4
安装了python的同学应该都知道python的包管理工具pip,这里就不赘述了。
切入点
爬网站主要还是找到一个url,当然有api是最好的,很容易就可以爬到自己想要的数据:url:http://api.bilibili.com/archive_stat/stat?aid=xxx
# ps b站这个请求太频繁的拉数据的话,会被封ip的,我现在正在用手机开着热点,一边在拉数据,一边在写这篇教程
大概抓1w条左右会被检测出来,然后封个5分钟左右ip,很多大佬说,做爬虫要多弄个代理,不会玩。
google了一下,b站用的大概是爬取间隔自适应。就是已经限制了你这个IP的抓取,就不要傻傻重复试,怎么滴也得休息一会。网易云音乐操作起来比较简单,sleep一下就好了。其实sleep的间隔应该按情况累加,比如第一次sleep 10秒,发现还是被约束。那么就sleep 20秒… 这个间隔的设置已经自适应的最终效果是经验值。
贴代码
import json from bs4 import BeautifulSoup from urllib import request def 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 -- 216997 select 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/[/code]
推断:
b站可能把高点击量的视频都用,一下链接了:https://bangumi.bilibili.com/anime/id号/
可能也想由http转https,让网站更安全。
好吧,那接下来我们的目标很明确了,就是抓https://bangumi.bilibili.com/anime/id号/这个链接的数据了。后记
python还是非常有意思的,尤其是从爬虫这里入门。
跟java比起来更加的轻巧,刚开始学,有些不会的东西也不需要太深究,跟着大佬们敲一敲。
备注一些学习python的资料:
廖雪峰 - Python教程
GitHub上的一些资源
相关文章推荐
- Python菜鸟教程-笔记
- 菜鸟利用python处理大文本数据的血泪路
- GDAL python教程(1)——用OGR读写矢量数据
- Python 数据科学入门教程:NLTK
- Python 2.7入门教程总结1:数据类型(待续)
- python 超全sklearn教程,数据挖掘从入门到入坑
- Python简单学习(lecture1)教程、基本语法、基本数据类型、解释器、注释、运算符
- 使用Python操作Elasticsearch数据索引的教程
- Python学习入门基础教程(learning Python)--6 Python下的list数据类型
- python3.6+yeelink的数据点操作【菜鸟学习笔记-1】
- 菜鸟Python之组合数据类型分类汇总
- Python 数据科学入门教程:OpenCV
- 菜鸟教程python基础总结
- Python教程学习简记1--Python数据类型和变量 字符串和编码 list和tuple 条件判断 循环 dict和set
- Python入门----语句(菜鸟教程的学习笔记)
- 菜鸟教程Python100例-笔记
- Java菜鸟教程 基本数据类型(二)
- 举例讲解Python的Tornado框架实现数据可视化的教程
- 简明Python教程学习笔记_4_数据结构
- 教程 | 5种快速易用的Python Matplotlib数据可视化方法