Python爬虫之网络请求
目录
1.IP代理2.Cookie3.异常处理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)
到此这篇关于Python爬虫之网络请求的文章就介绍到这了,更多相关Python 网络请求内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
上一篇:Python数据传输黏包问题
X 关闭
X 关闭
- 15G资费不大降!三大运营商谁提供的5G网速最快?中国信通院给出答案
- 2联想拯救者Y70发布最新预告:售价2970元起 迄今最便宜的骁龙8+旗舰
- 3亚马逊开始大规模推广掌纹支付技术 顾客可使用“挥手付”结账
- 4现代和起亚上半年出口20万辆新能源汽车同比增长30.6%
- 5如何让居民5分钟使用到各种设施?沙特“线性城市”来了
- 6AMD实现连续8个季度的增长 季度营收首次突破60亿美元利润更是翻倍
- 7转转集团发布2022年二季度手机行情报告:二手市场“飘香”
- 8充电宝100Wh等于多少毫安?铁路旅客禁止、限制携带和托运物品目录
- 9好消息!京东与腾讯续签三年战略合作协议 加强技术创新与供应链服务
- 10名创优品拟通过香港IPO全球发售4100万股 全球发售所得款项有什么用处?