Python爬虫学习基础——5分钟学会爬取B站视频日播放量排行
2020-01-13 03:21
525 查看
Python爬虫学习基础——5分钟学会爬取B站视频日播放量排行
基础包含
这也是我当初第一次学习爬虫时做的练习,感觉给初学者练笔挺不错的。运用的知识也不是太多,只运用了requests库以及pyquery的相关知识,就算是小白花几个小时也完全可以掌握。
requests
requests库相对于我们以前使用的urllib有着更强大的处理网页能力,大部分操作也更加简便。请求一个网页urllib需要:
import urllib.request response = urllib.request.urlopen('https://www.baidu.com') print(response.read().decode('utf-8'))
而requests只需要
import requests response = requests('https://www.baidu.com') print(response.text)
是不是明显简便了很多。
pyquery
pyquery是python的一种解析库,其他比较强大的解析库还有XPath,Beautiful Soup等,这些都可以用来进行网页解析。详细操作我就不再细说了,初学者可以去官网了解。
进入正题
首先我们利用requests库将网页源码爬取下来,具体代码如下:
import requests from pyquery import PyQuery as pq headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0'} def get_request(url): response = requests.get(url, headers=headers) print(response.text) if __name__ == '__main__': url = 'https://www.bilibili.com/ranking?' get_request(url)
运行这段代码结果如下:
然后我们只要按下F12分析网页即可
然后根据分析结果利用pyquery编写代码
def pyquery_re(Response): doc = pq(Response) results = doc('.rank-list-wrap .rank-list .rank-item').items() dict1 = {} for result in results: dict1['num'] = result('.num').text() dict1['href'] = result('.info a').attr.href dict1['title'] = result('.info a').text() print(dict1) def get_request(url): response = requests.get(url, headers=headers) pyquery_re(response.text)
这里我们把requests请求到的源码通过函数传递给了pyquery进行解析。运行结果如下:
这样每日播放量排名,视频链接和视频名称就都出来了,最后,完整代码如下:
import requests from pyquery import PyQuery as pq headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0'} #这里是请求头部,模拟浏览器 def pyquery_re(Response): doc = pq(Response) results = doc('.rank-list-wrap .rank-list .rank-item').items() #这里调用了item()方法得到一个生成器,以便于遍历 dict1 = {} #初始化一个字典暂时存储爬取下来的信息 for result in results: dict1['num'] = result('.num').text() dict1['href'] = result('.info a').attr.href dict1['title'] = result('.info a').text() print(dict1) def get_request(url): response = requests.get(url, headers=headers) #请求网页数据 pyquery_re(response.text) if __name__ == '__main__': #以主函数的方式执行 url = 'https://www.bilibili.com/ranking?' get_request(url)
是不是感觉很简单。
当然爬虫不可能这么简单就学会,里面也有很多深奥的东西,有很多反爬措施需要我们去应付,所以,现在开始,一起加油努力吧。
PS:如果看完这个文章想要练手的小伙伴可以去豆瓣读书哦。当然也可以去爬我们CSDN官网的今日推荐哦
- 点赞 2
- 收藏
- 分享
- 文章举报
相关文章推荐
- Python爬虫学习基础——利用Ajax爬取B站用户信息
- 初学Python爬虫:爬取B站前x个视频年份、投币数与播放量
- Python爬虫学习记录(5)——python mongodb + 爬虫 + web.py 的acfun视频排行榜
- Python初学者(零基础学习Python、Python入门)书籍、视频、资料、社区推荐
- Python基础入门学习线路图之Linux和数据库(附视频教程)
- html基础学习之视频播放
- Python学习笔记(八)爬虫基础(正则和编解码)
- Python爬虫学习笔记——Python基础
- 最近找到了一个免费的python教程,两周学会了python开发【内附学习视频】
- Python爬虫学习记录(1)——Xiami全站播放数
- python 爬虫基础学习
- Python入门教程完整版(懂中文就能学会)视频\02python基础\day05\189-字符串-05-判断数字的三个方法.py
- 最新网易云零基础:21天搞定Python分布爬虫视频教程
- 最近找到了一个免费的python教程,两周学会了python开发【内附学习视频】
- 最近找到了一个免费的python教程,两周学会了python开发【内附学习视频】
- python基础学习-7(简单爬虫)
- Python基础学习-爬虫小试3爬知乎用户小测
- Python网络爬虫基础知识学习
- python爬虫基础学习-01
- Opencv3 python学习2——视频基础