Python爬虫学习基础——5分钟学会爬取B站视频日播放量排行
Python爬虫学习基础——5分钟学会爬取B站视频日播放量排行
- 基础包含
- requests
- pyquery
- 进入正题
基础包含
这也是我当初第一次学习爬虫时做的练习,感觉给初学者练笔挺不错的。运用的知识也不是太多,只运用了requests库以及pyquery的相关知识,就算是小白花几个小时也完全可以掌握。
requests
requests库相对于我们以前使用的urllib有着更强大的处理网页能力,大部分操作也更加简便。请求一个网页urllib需要:
import urllib.requestresponse = urllib.request.urlopen('https://www.baidu.com')
print(response.read().decode('utf-8'))
而requests只需要
import requestsresponse = requests('https://www.baidu.com')
print(response.text)
是不是明显简便了很多。
pyquery
pyquery是python的一种解析库,其他比较强大的解析库还有XPath,Beautiful Soup等,这些都可以用来进行网页解析。详细操作我就不再细说了,初学者可以去官网了解。
进入正题
首先我们利用requests库将网页源码爬取下来,具体代码如下:
import requests
from pyquery import PyQuery as pqheaders = {'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.hrefdict1['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 pqheaders = {'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.hrefdict1['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官网的今日推荐哦
Python爬虫学习基础——5分钟学会爬取B站视频日播放量排行相关推荐
- python爬虫学习笔记(一)—— 爬取腾讯视频影评
前段时间我忽然想起来,以前本科的时候总有一些公众号,能够为我们提供成绩查询.课表查询等服务.我就一直好奇它是怎么做到的,经过一番学习,原来是运用了爬虫的原理,自动登陆教务系统爬取的成绩等内容.我觉得挺 ...
- python爬虫多久能学会-不踩坑的Python爬虫:如何在一个月内学会爬取大规模数据...
原标题:不踩坑的Python爬虫:如何在一个月内学会爬取大规模数据 Python爬虫为什么受欢迎 如果你仔细观察,就不难发现,懂爬虫.学习爬虫的人越来越多,一方面,互联网可以获取的数据越来越多,另一方 ...
- python 扒数据_不踩坑的Python爬虫:如何在一个月内学会爬取大规模数据
Python爬虫为什么受欢迎 如果你仔细观察,就不难发现,懂爬虫.学习爬虫的人越来越多,一方面,互联网可以获取的数据越来越多,另一方面,像 Python这样的编程语言提供越来越多的优秀工具,让爬虫变得 ...
- Python爬虫学习 6 —— 使用bs4库爬取大学排名
前面学了如何使用beautifulsoup,现在来尝试简单的爬取:中国大学排名 一.准备 查看Robots协议:robots协议 功能描述 输入:大学排名的url链接 输出:大学排名信息(排名,大学名 ...
- python爬虫学习基础教程,批量抓取美女图片!
python的抓取功能其实是非常强大的,当然不能浪费,呵呵.下面就与大家分享一个python写的美女图自动抓取程序吧! 其中用到urllib2模块和正则表达式模块.下面直接上代码: 用python批量 ...
- Python3爬虫学习笔记——xpath练习之爬取起点网玄幻小说排行
这次看完xpath章之后巩固练习 import re import requests from lxml import etree def get_one_page(url):headers = {' ...
- 以下用于数据存储领域的python第三方库是-Python3爬虫学习之MySQL数据库存储爬取的信息详解...
本文实例讲述了Python3爬虫学习之MySQL数据库存储爬取的信息.分享给大家供大家参考,具体如下: 数据库存储爬取的信息(MySQL) 爬取到的数据为了更好地进行分析利用,而之前将爬取得数据存放在 ...
- Python爬虫系列(二):爬取中国大学排名丁香园-用户名和回复内容淘宝品比价
Python爬虫系列(二):爬取中国大学排名&丁香园-用户名和回复内容&淘宝品比价 目录 Python爬虫系列(二):爬取中国大学排名&丁香园-用户名和回复内容&淘宝品 ...
- 基于python爬虫————静态页面和动态页面爬取
基于python爬虫----静态页面和动态页面爬取 文章目录 基于python爬虫----静态页面和动态页面爬取 1. 爬虫的原理 2. 用正则表达式匹配获取数据 3. 页面源码解析 4. 通过req ...
最新文章
- 【网络编程】非阻塞connect详解
- python平方和计算技巧_Python算法练习题:四平方和
- Pytorch+CNN+猫狗分类实战
- 读书笔记之: 计算机网络(第4版)- 第6章 传输层
- c语言实验设计报告,C语言实验设计报告.doc
- 【转】BMP图像文件格式
- Python Flask实现查询和添加数据
- 代码画简单动物_[500行代码学懂OpenGL]之六数学知识
- 蘑菇车联打造一体化解决方案,致力产业协同发展
- python矩阵_Python矩阵
- 105 基于socketserver实现并发的socket编程
- charshow需求说明
- CentOS 关闭防火墙selinux
- Matlab 检测直线并求解直线方程
- Android封装支付宝支付
- VMware虚拟机下载安装教程
- python+scapy实现ARP欺骗
- 用于React,React Native,JavaScript和生产力的顶级VSCode扩展
- 晨风机器人发送图片_晨风机器人基本使用说明
- 移动端开发(学好移动端这一篇就够啦)
热门文章
- RSA算法与加密解密
- ML之RF:基于葡萄牙银行机构营销活动数据集(年龄/职业/婚姻/违约等)利用Pipeline框架(两种类型特征并行处理)+RF模型预测(调参+交叉验证评估+模型推理)客户是否购买该银行的产品二分类案例
- 2020年5月29日06--Python的函数
- php ios11图片,iOS11和iOS10有什么区别?对比图让你一目了然
- Parquet性能测试之项目实践中应用测试
- 用英语介绍计算机300字,关于电脑的作文300字
- 区块链生命链_大都会人寿首创“生命链”技术 区块链应用再结硕果
- Windows下使用PDH获取性能计数器(CPU、内存、网络流量等)
- 第二类斯特林数与自然数幂和
- 2020年度文章列表