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站视频日播放量排行相关推荐

  1. python爬虫学习笔记(一)—— 爬取腾讯视频影评

    前段时间我忽然想起来,以前本科的时候总有一些公众号,能够为我们提供成绩查询.课表查询等服务.我就一直好奇它是怎么做到的,经过一番学习,原来是运用了爬虫的原理,自动登陆教务系统爬取的成绩等内容.我觉得挺 ...

  2. python爬虫多久能学会-不踩坑的Python爬虫:如何在一个月内学会爬取大规模数据...

    原标题:不踩坑的Python爬虫:如何在一个月内学会爬取大规模数据 Python爬虫为什么受欢迎 如果你仔细观察,就不难发现,懂爬虫.学习爬虫的人越来越多,一方面,互联网可以获取的数据越来越多,另一方 ...

  3. python 扒数据_不踩坑的Python爬虫:如何在一个月内学会爬取大规模数据

    Python爬虫为什么受欢迎 如果你仔细观察,就不难发现,懂爬虫.学习爬虫的人越来越多,一方面,互联网可以获取的数据越来越多,另一方面,像 Python这样的编程语言提供越来越多的优秀工具,让爬虫变得 ...

  4. Python爬虫学习 6 —— 使用bs4库爬取大学排名

    前面学了如何使用beautifulsoup,现在来尝试简单的爬取:中国大学排名 一.准备 查看Robots协议:robots协议 功能描述 输入:大学排名的url链接 输出:大学排名信息(排名,大学名 ...

  5. python爬虫学习基础教程,批量抓取美女图片!

    python的抓取功能其实是非常强大的,当然不能浪费,呵呵.下面就与大家分享一个python写的美女图自动抓取程序吧! 其中用到urllib2模块和正则表达式模块.下面直接上代码: 用python批量 ...

  6. Python3爬虫学习笔记——xpath练习之爬取起点网玄幻小说排行

    这次看完xpath章之后巩固练习 import re import requests from lxml import etree def get_one_page(url):headers = {' ...

  7. 以下用于数据存储领域的python第三方库是-Python3爬虫学习之MySQL数据库存储爬取的信息详解...

    本文实例讲述了Python3爬虫学习之MySQL数据库存储爬取的信息.分享给大家供大家参考,具体如下: 数据库存储爬取的信息(MySQL) 爬取到的数据为了更好地进行分析利用,而之前将爬取得数据存放在 ...

  8. Python爬虫系列(二):爬取中国大学排名丁香园-用户名和回复内容淘宝品比价

    Python爬虫系列(二):爬取中国大学排名&丁香园-用户名和回复内容&淘宝品比价 目录 Python爬虫系列(二):爬取中国大学排名&丁香园-用户名和回复内容&淘宝品 ...

  9. 基于python爬虫————静态页面和动态页面爬取

    基于python爬虫----静态页面和动态页面爬取 文章目录 基于python爬虫----静态页面和动态页面爬取 1. 爬虫的原理 2. 用正则表达式匹配获取数据 3. 页面源码解析 4. 通过req ...

最新文章

  1. 【网络编程】非阻塞connect详解
  2. python平方和计算技巧_Python算法练习题:四平方和
  3. Pytorch+CNN+猫狗分类实战
  4. 读书笔记之: 计算机网络(第4版)- 第6章 传输层
  5. c语言实验设计报告,C语言实验设计报告.doc
  6. 【转】BMP图像文件格式
  7. Python Flask实现查询和添加数据
  8. 代码画简单动物_[500行代码学懂OpenGL]之六数学知识
  9. 蘑菇车联打造一体化解决方案,致力产业协同发展
  10. python矩阵_Python矩阵
  11. 105 基于socketserver实现并发的socket编程
  12. charshow需求说明
  13. CentOS 关闭防火墙selinux
  14. Matlab 检测直线并求解直线方程
  15. Android封装支付宝支付
  16. VMware虚拟机下载安装教程
  17. python+scapy实现ARP欺骗
  18. 用于React,React Native,JavaScript和生产力的顶级VSCode扩展
  19. 晨风机器人发送图片_晨风机器人基本使用说明
  20. 移动端开发(学好移动端这一篇就够啦)

热门文章

  1. RSA算法与加密解密
  2. ML之RF:基于葡萄牙银行机构营销活动数据集(年龄/职业/婚姻/违约等)利用Pipeline框架(两种类型特征并行处理)+RF模型预测(调参+交叉验证评估+模型推理)客户是否购买该银行的产品二分类案例
  3. 2020年5月29日06--Python的函数
  4. php ios11图片,iOS11和iOS10有什么区别?对比图让你一目了然
  5. Parquet性能测试之项目实践中应用测试
  6. 用英语介绍计算机300字,关于电脑的作文300字
  7. 区块链生命链_大都会人寿首创“生命链”技术 区块链应用再结硕果
  8. Windows下使用PDH获取性能计数器(CPU、内存、网络流量等)
  9. 第二类斯特林数与自然数幂和
  10. 2020年度文章列表