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
0
投稿
猜你喜欢
- 本文实例讲述了python对数组进行反转的方法。分享给大家供大家参考。具体实现方法如下:arr = [1,2,3]arr.reverse()
- #!/usr/bin/python## get subprocess module import subprocess ## ca
- 1 动机greenlet 包是 Stackless 的副产品,其将微线程称为 “tasklet” 。tasklet运
- 一个SELECT查询中的LIKE语句来执行这种查询,尽管这种方法可行,但对于全文查找而言,这是一种效率极端低下的方法,尤其在处理大量数据的时
- 问题:这里只解决一个问题,到底什么是Access?设计一个数据库管理系统,用access在access里面设计好表,查询,然后再用vb做窗体
- 但凡设计师都对简洁的设计情有独钟,我们不喜欢复杂,却也不能不会rich。先来看下“rich”在字典里的意思:(1) having an ab
- 1. iocgo简介习惯于Java或者C#开发的人应该对控制反转与依赖注入应该再熟悉不过了。在Java平台有鼎鼎大名的Spring框架,在C
- -------------- 函数检索 --------------trim函数: trim() lTrim() rTrim()校验字符串是
- 1.1.1 摘要 相信大家对于SQL Transcation再熟悉不过,它确保了数据库的数据一致性和安全性,尤其在对数据执行增删时,如果发生
- 本文实例讲述了php实现mysql备份恢复分卷处理的方法。分享给大家供大家参考。具体分析如下:分卷处理就是把握们要处理的数据分成一个个小文件
- 偶写的几个ASP字符串处理函数,用于文章分页的小玩意函数名:StrLen作 用:取得字符串长度(汉字为2)参 
- 设计方法曾经是个很尴尬的话题,因为经常看上去很美。专业人士们动手动脚折腾一大圈,出来的结果令人大跌眼镜。也有些设计师总喜欢把方法、概念吹的特
- 随着网页技术的发展,网络视觉设计与之前以程序员为主导的审美特征相比,具有了极大的改观。同时,随着美术、音乐、舞蹈人才的加入,网络开始在这一社
- 目录什么是异常?异常处理try-except 格式一-try...except...格式二-try...except {error
- 有两张表a表id val 1 a 2 b 3 c 4 d 5 e b表 a_id val 1 null 2 null 3 null 4 nu
- 国外纷纷传言IE8将是Internet Explorer的最后一个版本,这个猜测来源于Microsoft的CEO Steve
- 空白双边距是一个极容易误解的CSS特性.它不是CSS的bug,但如果我们一旦误解,将会给你带来很多麻烦.先看如下demo代码:<!do
- 我就废话不多说了,直接上代码吧:package mainimport ("flag""fmt"&qu
- 我们先看一下淘宝的页面:这么一个庞然大物,该怎么切图呢?显然按照给出的方法也可以完成这项任务,但是做为前端开发的我们是否应该给自己提出更高的
- 如下所示:#!/usr/bin/env pythonimport osimport sysclass CConsole: M_MAP_COL