Python爬虫之网络请求
作者:长得丑就要多读书 发布时间:2023-10-29 21:28:08
标签:Python,爬虫,网络,请求
1.IP代理
某些网站会检测一段时间内某IP的访问次数,若访问次数过多会禁止访问,这时需要设置一些代理服务器,每隔一段时间换一个代理。IP代理的分类:
①透明代理:目标网站可以得知使用了代理以及源IP地址,显然这不符合要求;
②匿名代理:目标网站知道使用了代理,但不知道源IP地址;
③高匿代理:最保险的方式,目标网站既不知道使用了代理,也不知道源IP地址。
2.Cookie
解决http
的无状态性,第一次向服务器发送请求时,服务器生成Cookie
作为请求头并储存到浏览器中;浏览器再次发送请求时将携带Cookie信息。
import urllib.request
from http import cookiejar
filename = 'cookie.txt'
#获取Cookie
def 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()
#读取cookie
def 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.request
import 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.request
import 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)
来源:https://blog.csdn.net/qq_40523659/article/details/122520797


猜你喜欢
- Python的五个标准数据类型数字字符串列表元组字典一、数字不可变数据类型,存储值为数值1.创建对象,分配数值例:>>>
- 前文学习:python数据结构:数据类型.python数据结构输入输出及控制和异常.今天我们来学习面向对象编程,面向对象这种编程方式非常重要
- 乱码问题破解压缩包时候会存在中文乱码问题!1:直接使用Everything搜索出要修改的库文件 zipfile.py ,并用notepad+
- 很多年以前,面对上古时代遗留的 HTML 发出的腐臭,我捂住鼻子唉声叹气。刚练熟 web 标准的我,恨不得寝其尸食其肉,把一切推翻重来。但经
- 前言虽然现在文件上传下载工具多如牛毛,比如http、ftp、sftp、scp等方案都可以用于文件传输,但都是需要安装服务器甚至客户端。有一种
- 背景使用python进行图像可视化,很多情况下都需要subplots将多幅图像绘制在一个figure中。因为使用频率足够高,那么程序员就需要
- 上文: 《IE7的web标准之道——1:前言(兼目录)》IE历来被web标准的拥护者所诟病,而当FireFox横空出世以后,更多的网页制作者
- 一、Base64编码原理步骤1:将所有字符转化为ASCII码;步骤2:将ASCII码转化为8位二进制;步骤3:将二进制3个归成一组(不足3个
- 本文实例讲述了CentOS环境下安装Redis3.0及phpredis扩展测试。分享给大家供大家参考,具体如下:线上的统一聊天及推送系统re
- 本文实例讲述了python函数局部变量用法。分享给大家供大家参考。具体分析如下:当你在函数定义内声明变量的时候,它们与函数外具有相同名称的其
- 结合vue+element-ui+vue-quill+editor二次封装成组件1.图片上传分析原因项目中使用vue-quill-edito
- 这篇文章主要介绍了简单了解python字符串前面加r,u的含义,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,
- 本文实例讲述了PHP abstract 抽象类定义与用法。分享给大家供大家参考,具体如下:PHP抽象类应用要点:1.定义一些方法,子类必须完
- 开发堡垒机之前,先来学习Python的paramiko模块,该模块基于SSH用于连接远程服务器并执行相关操作安装paramiko模块pip3
- NumPy的主要对象是同种元素的多维数组。这是一个所有的元素都是一种类型、通过一个正整数元组索引的元素表格(通常是元素是数字)。在NumPy
- 最近由于业务的原因,需要在Web端页面接入调试各类的网络摄像头,遇到了很多匪夷所思的问题(说的就是读得出摄像头的品牌,读不出摄像头的分辨率)
- Python 是一门更注重可读性和效率的语言,尤其是相较于 Java,PHP 以及 C++ 这样的语言,它的这两个优势让其在开发者中大受欢迎
- 这篇文章主要介绍了Python tkinter三种布局实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,
- 本文实例讲述了Python简单获取网卡名称及其IP地址的方法。分享给大家供大家参考,具体如下:windows上想知道网卡和IP地址,可以使用
- 方法一一、桌面右击,点击“Git Bash Here”二、在弹出的黑窗口,右击,选择&ldq