当前位置:

首页 > 编程开发 > Python网络爬虫:requests库使用指南

Python网络爬虫:requests库使用指南

1.什么是网络爬虫简单来说,就是构建一个程序,以自动化的方式从网络上下载、解析和组织数据。就像我们浏览网页的时候,对于我们感兴趣的内容我们会复制粘贴到自己的笔记本中,方便下次阅读浏览——网络爬虫帮我们自动完成这些内容当然如果遇到一些无法复制粘贴的网站——网络爬虫就更能显示它的力量了为什么需要网络爬虫当我们需要做一些数据分析的时候——而很多时候这些数据存储在网页中,手动下载需要花费的时间太长,这时候我们就需要网络爬虫帮助我们自动爬取这些

1. 什么是网络爬虫

简单来说,就是构建一个程序,以自动化的方式从网络上下载、解析和组织数据。

就像我们浏览网页的时候,对于我们感兴趣的内容我们会复制粘贴到自己的笔记本中,方便下次阅读浏览——网络爬虫帮我们自动完成这些内容

当然如果遇到一些无法复制粘贴的网站——网络爬虫就更能显示它的力量了

为什么需要网络爬虫

当我们需要做一些数据分析的时候——而很多时候这些数据存储在网页中,手动下载需要花费的时间太长,这时候我们就需要网络爬虫帮助我们自动爬取这些数据来(当然我们会过滤掉网页上那些没用的东西)

网络爬虫的应用

访问和收集网络数据有十分广泛的应用,其中很多属于数据科学领域 我们来看看下面这些例子:

淘宝网的卖家需要从海量的评价中寻找到有用的正面的和反面的信息,来帮助他进一步抓住顾客的心,分析顾客的购物心理有学者在twitter、微博等社交媒体上爬取信息来构建一个数据集,从而建立一个识别抑郁症和自杀念头的预测模型——让更多需要援助的人得到帮助——当然我们也需要考虑到隐私相关的问题——但这很酷不是吗?

作为一名人工智能工程师,他们从Ins上爬取志愿者所展示的喜好的图片,来训练深度学习模型,从而预测给出的图像是否会被志愿者所喜好——手机制造商将这些模型纳入他们的图片应用程序中,推送给你。电商平台的数据科学家爬取用户浏览商品的信息,进行分析和预测,以便推送给用户他最想要了解和购买的商品

是的!网络爬虫的应用十分广泛,小到我们日常用来批量爬取一些高清的壁纸,图片;大到人工智能、深度学习、商业策略制定的数据来源等。

这个时代是数据的时代,数据就是“新石油”

2. 网络传输协议HTTP

没错,讲到网络爬虫一定绕不开的就是这个HTTP,当然我们不需要像网络工程师那样详细的了解协议定义的方方面面,但是作为入门我们还是得具有一定的认识才行

国际标准化组织ISO维护了开放式通信系统互联参考模型OSI,而该模型将计算机通信结构分为七层

  1. 物理层:包括以太网协议、USB协议、蓝牙协议等

  2. 数据链路层:包含以太网协议

  3. 网络层:包含IP协议

  4. 传输层:包含TCP、UDP协议

  5. 会话层:包含用于打开/关闭和管理会话的协议

  6. 表示层:包含保护格式还和翻译数据的协议

  7. 应用层:包含HTTP和DNS网络服务协议

现在来看看HTTP请求和响应是什么样子的(因为后面会涉及自定义请求头) 一般请求消息由一下内容构成:

  • 请求行

  • 多个请求头

  • 空行

  • 可选的消息主体

具体的请求消息:

GET https://www.baidu.com/?tn=80035161_1_dg HTTP/1.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-Hans-CN,zh-Hans;q=0.8,en-GB;q=0.5,en;q=0.3
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18362
Accept-Encoding: gzip, deflate, br
Host: www.baidu.com
Connection: Keep-Alive

这个是访问百度时的请求,当然里面的很多细节我们也不需要知道,因为python的request包会帮助我们完成我们的爬取

当然我们也能查看网页对我们的请求返回的信息:

HTTP/1.1 200 OK //这边的状态码为200表示我们的请求成功
Bdpagetype: 2
Cache-Control: private
Connection: keep-alive
Content-Encoding: gzip
Content-Type: text/html;charset=utf-8
Date: Sun, 09 Aug 2020 02:57:00 GMT
Expires: Sun, 09 Aug 2020 02:56:59 GMT
X-Ua-Compatible: IE=Edge,chrome=1
Transfer-Encoding: chunked

3. requests库(不喜欢理论知识的同学们可以直接来这里哦)

我们知道其实python还预置了另外的处理HTTP的库——urllib和urllib3,但是requests库学起来更容易——代码更简洁易懂。 当然当我们成功爬取下网页时,将要将里面我们感兴趣的东西提取出来的时候, 我们会提到另一个十分有用的库——美丽汤(Beautiful Soup)——这又是后话了

1. requests库的安装

这里我们可以直接找到requests的.whl文件安装,也可以直接使用pip来安装(当然如果有pycharm的同学可以直接从里面的环境加载中下载)

2. 实战

下面我们开始正式爬取网页

代码如下:

import requests
target = 'https://www.baidu.com/'
get_url = requests.get(url=target)
print(get_url.status_code)
print(get_url.text)

输出结果

200 //返回状态码200表示请求成功
//这里删除了很多内容,实际上输出的网页信息比这要多得多
 

 

 
 
 
  

上面五行代码做了很多事情,我们已经可以将网页的HTML内容全部抓取

第一行代码:加载requests库 第二行代码:给出需要爬取的网站 第三行代码:使用requests进行请求 一般的格式如下:

对象 = requests.get(url=你想要爬取的网站地址)

第四行代码:返回请求的状态码 第五行代码:输出相应的内容主体

当然我们还可以打印更多的内容

import requests

target = 'https://www.baidu.com/'
get_url = requests.get(url=target)
# print(get_url.status_code)
# print(get_url.text)
print(get_url.reason)//返回状态
print(get_url.headers)
//返回HTTP响应中包含的服务器头的内容(和上面展示的内容差不多)
print(get_url.request)
print(get_url.request.headers)//返回请求中头的内容
OK
{'Cache-Control': 'private, no-cache, no-store, proxy-revalidate, no-transform', 
'Connection': 'keep-alive', 
'Content-Encoding': 'gzip', 
'Content-Type': 'text/html', 
'Date': 'Sun, 09 Aug 2020 04:14:22 GMT',
'Last-Modified': 'Mon, 23 Jan 2017 13:23:55 GMT', 
'Pragma': 'no-cache', 
'Server': 'bfe/1.0.8.18', 
'Set-Cookie': 'BDORZ=27315; max-age=86400; domain=.baidu.com; path=/', 'Transfer-Encoding': 'chunked'}

{'User-Agent': 'python-requests/2.22.0', 
'Accept-Encoding': 'gzip, deflate', 
'Accept': '*/*', 
'Connection': 'keep-alive'}
本文内容来源于互联网,如有侵权请联系删除。
作者最新文章
编程开发 Python
上一篇: Java内存模型的作用是什么?
下一篇: Photoshop快捷键修改在哪里?PS2020快捷键设置方法
相关文章 更多
C++动态数组初始化怎么写?常用语句与代码示例
C++动态数组初始化怎么写?常用语句与代码示例

深入解析C++中动态数组的初始化机制,涵盖new操作符的不同用法、基本类型与类对象的初始化差异,以及为何在现代C++开发中应优先使用std::vector。

Python安装后怎么打开:使用IDLE或命令行启动解释器
Python安装后怎么打开:使用IDLE或命令行启动解释器

刚在Windows安装好Python却不知道如何启动?本文详细演示如何通过开始菜单找到并打开IDLE集成开发环境,以及如何在PowerShell或命令提示符中使用python和py命令启动交互式解释器、运行.py脚本文件。包含退出解释器的方法及常见启动问题排查,帮助初学者快速验证安装成功并开始编写代码。

Windows系统Python安装教程:下载、勾选PATH及环境变量配置
Windows系统Python安装教程:下载、勾选PATH及环境变量配置

针对Windows初学者的Python安装实战指南。详细讲解如何从Python官网下载匹配架构的安装包,重点演示安装首屏勾选“Add python.exe to PATH”的关键操作,并提供使用python --version和py命令验证环境变量的具体步骤,帮助新手快速搭建开发环境并排查路径问题。

麒麟OS如何查看Python进程的运行状态
麒麟OS如何查看Python进程的运行状态

要想确认麒麟OS中Python程序的运行状态以及资源占用情况,我们可以这样做:用ps -ef | grep python来筛选进程;通过top命令,按P键排序查看实时负载;使用pgrep -f "script.py"精准获取PID;借助lsof -p PID验证文件打开状态。另外,还可以结合syst

Python在Debian上如何配置SSL证书
Python在Debian上如何配置SSL证书

在Debian系统上配置SSL证书通常涉及以下几个步骤:安装Web服务器:首先,你需要一个Web服务器,比如Apache或Nginx。这里以Apache为例。sudo apt updatesudo apt install apache2获取SSL证书:你可以从Let’s Encrypt免费获取SSL

统信UOS怎么安装Python开发环境
统信UOS怎么安装Python开发环境

要想让Python项目在统信UOS上正常运行,得先安装python3、python3-pip、python3-venv、python3-dev以及build-essential等组件。具体操作就是执行sudo apt install命令来一步到位完成安装,同时别忘了配置清华镜像源来给pip加速哦。在

纯Python方案实现中英文全文搜索
纯Python方案实现中英文全文搜索

在互联网上的各类网站中,无论大小,基本上都会有一个搜索框,用来给用户对内容进行搜索,小到站点搜索,大到搜索引擎搜索。从简单的来说,搜索功能确实很简单,一个简单的select语句就可以实现数据的搜索。而从复杂的来看,无论是搜索的精度还是搜索的效率,都是有很深的研究范围的。对于简单的搜索功能来说,一个s

Mac如何取消通过Python脚本运行的关机程序
Mac如何取消通过Python脚本运行的关机程序

立即在终端输入sudo shutdown -c取消倒计时关机,成功后显示“Shutdown cancelled”;若存在pmset重复任务,需再执行sudo pmset repeat cancel清除。Mac因Python脚本执行了os.system("sudo shutdown -h +10")或

Pythonasyncio异步并发与多固定出口IP调度实战
Pythonasyncio异步并发与多固定出口IP调度实战

之前写过一篇同步场景下用 Python 管理多个固定出口 IP 的实践(ExitPool + requests/httpx),覆盖了健康检查、故障转移和连接池复用。但在实际业务中,越来越多的场景用 asyncio 做高并发采集或批量接口调用——异步事件循环下多出口的管理方式和同步场景完全不同:单线程

Python在静态出口IP产品中的实战:从地址漂移巡检到多IP故障切换
Python在静态出口IP产品中的实战:从地址漂移巡检到多IP故障切换

写在前面:为什么静态出口 IP 不是"买了就行"不少团队在引入静态出口 IP 产品时,第一反应往往是:“地址配上去,这事就算完了。”可真到了真实业务里,静态出口 IP 真正能体现价值的地方,往往不在分配这一步,而在分配之后怎么管:地址有没有漂移,质量是否达标,某一条线路突然不可用时怎么切换,连接层又

查看更多
精品专题 更多
装机必备
装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows
Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

macOS软件
macOS软件

正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

Mac软件 更多
灵活计算器
灵活计算器
macOS/iOS/Android

灵活计算器是一款笔记式算数应用,支持实时计算、动态关联和云端同步功能。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

赤友清理大师
赤友清理大师
macOS

赤友清理大师是一款为 Mac 设计的智能清理优化工具,可精准扫描垃圾、大文件、重复文件等,释放磁盘空间。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

极度公式
极度公式
Windows/macOS/Linux

极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

WINDOWS 更多
Windows 10
Windows 10
Windows

Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。

极度公式
极度公式
Windows/macOS/Linux

极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

密码键盘
密码键盘
Windows/macOS/iOS/Android

密码键盘是一款兼具安全性与便捷性的高效密码管理器。日常使用里的持续防护和信息管理会更突出,适合把安全控制放进长期使用流程中的场景。