Python网络爬虫【持续更新】-requests库的使用
什么是request库
- Requests是一常用的http请求库,它使用python语言编写,可以方便地发送http请求,以及方便地处理响应结果。
- Requests库使用了面向对象的思想。对于用户的请求,封装成了一个request类,此类包含了Http协议请求的部分相关内容。在用户使用了相应的Get等方法后,会返回一个response对象,该对象包含了Http协议相应的部分相关内容。方便用户通过这些对象,进行相关的分析和操作。
request库的基本用法
常见的属性
- requests.encoding -通过请求头,分析出当前的编码
- requests.apparentEncoding - 通过内容,分析出当前编码
- requests.status_code - 返回当前请求的状态码
- requests.content -返回二进制形式的相应内容
- requests.text -返回文本形式的相应内容
常见的方法
-
request.get(url,**arg) -相应类型的还有post、put等类似,不赘述
对于get方法而言,参数分为两部分。一部分是url,即当前要访问的url;另一部分是各种参数,例如:paramers,headers等等,这些参数可以完善一个请求的相关信息。 -
request.raise_for_status() -判断本次请求返回的状态码,如果不是200则抛出异常
使用request库时注意的一些事项
- 由于许多网站都设置了反爬虫机制,例如Robots协议,所以爬虫的时候可能会出现一些问题。当你使用第三方库爬虫的时候,requsts请求头会把你的身份信息泄漏(请求头会有个标志,代表你是通过爬虫的方式来访问其网站的),那么这样网站往往会拒绝你的访问。此时,就需要利用requests.get()方法里面的参数设置(headers=xxx),将你的头部信息改为一般用户的访问,才能够不被浏览器拦截。
- 爬虫的时候,快速多次访问同一个域名,可能会导致你的ip被拉入黑名单,所以编程的时候一定不要过频访问同一个地址(或者技术可以的话,实现伪ip实时转换来反反爬虫)。
- 目前很多网站都规定了可爬虫范围(每个网站根目录下都有个robots.txt文件),如果你访问了不允许爬虫的网站,可能需要承担法律责任。慎重!!!
request代码基本框架
import requests
def getHTML(url):
try:
str_Head = {'user-agent':'Mozilla/5.0'}
r = requests.get(url,headers=str_Head)
r.raise_for_status()
r.encoding = r.apparent_encoding
print(r.text)
except:
print("Failure accessing...try again")
if __name__ == "__main__":
url = "https://www.amazon.com/"
getHTML(url)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?