千家信息网

Python爬虫之网络请求实例分析

发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,本篇内容介绍了"Python爬虫之网络请求实例分析"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.
千家信息网最后更新 2025年01月22日Python爬虫之网络请求实例分析

本篇内容介绍了"Python爬虫之网络请求实例分析"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

1.IP代理

某些网站会检测一段时间内某IP的访问次数,若访问次数过多会禁止访问,这时需要设置一些代理服务器,每隔一段时间换一个代理。IP代理的分类:

  • ①透明代理:目标网站可以得知使用了代理以及源IP地址,显然这不符合要求;

  • ②匿名代理:目标网站知道使用了代理,但不知道源IP地址;

  • ③高匿代理:最保险的方式,目标网站既不知道使用了代理,也不知道源IP地址。

2.Cookie

解决http的无状态性,第一次向服务器发送请求时,服务器生成Cookie作为请求头并储存到浏览器中;浏览器再次发送请求时将携带Cookie信息。

import urllib.requestfrom http import cookiejarfilename = 'cookie.txt'#获取Cookiedef get_cookie():    #实例化一个MozillaCookieJar用于存储cookie    cookie = cookiejar.MozillaCookieJar(filename)    #创建handler对象    handler = urllib.request.HTTPCookieProcessor(cookie)    #创建opener对象    opener = urllib.request.build_opener(handler)    #请求网址    url = 'https://tieba.baidu.com/index.html?traceid=#'    resp = opener.open(url) #发送请求    #存储cookie文件    cookie.save() #读取cookiedef use_cookie():    #实例化MozillaCookieJar    cookie = cookiejar.MozillaCookieJar()    #加载cookie文件    cookie.load(filename)    print(cookie) get_cookie()use_cookie()

3.异常处理

①urllib.error.URLError:用于捕获由urllib.request产生的异常,使用reason属性返回错误原因

import urllib.requestimport urllib.error url = 'http://www.google.com'try:    resp = urllib.request.urlopen(url)except urllib.error.URLError as e:    print(e.reason)

输出结果:

[WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。

②urllib.error.HTTPError:用于处理HTTP与HTTPS请求的错误,

有三个属性:

  • code:请求返回的状态码

  • reason:返回错误的原因

  • headers:请求返回的响应头信息

import urllib.requestimport urllib.error url = 'https://movie.douban.com/'try:    resp = urllib.request.urlopen(url)except urllib.error.HTTPError as e:    print('原因:',e.reason)    print('响应状态码:',str(e.code))    print('响应头数据:',e.headers)

"Python爬虫之网络请求实例分析"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

0