python爬⾍请求头的使⽤
爬⾍请求头
⽹页获取:
通过urlopen来进⾏获取
requset.urlopen(url,data,timeout)
第⼀个参数url即为URL,第⼆个参数data是访问URL时要传送的数据,第三个timeout是设置超时时间。
第⼆三个参数是可以不传送的,data默认为空None,timeout默认为 socket._GLOBAL_DEFAULT_TIMEOUT
第⼀个参数URL是必须要加⼊的,执⾏urlopen⽅法之后,返回⼀个response对象,返回信息便保存在这⾥⾯
quest import urlopen
url = "www.baidu/"
respons = urlopen(url)#最简单的爬取情况这样爬取⼤部分⽹页⽆法爬取成功
response对象:
read()⽅法就是读取⽂件⾥的全部内容,返回bytes类型
print(ad()))#结果为bytes类型所以需要进⾏转码
python安装教程非常详细print(ad().decode()))#通过decode转码结果为str
返回 HTTP的响应码,成功返回200,4服务器页⾯出错,5服务器问题
返回返回实际数据的实际URL,防⽌重定向问题
response.info()
返回服务器响应的HTTP报头
Request对象
Request对象,由于urlopen参数可以传⼊⼀个request请求(可以理解成为再加⼀步封装的功能)因为在构建请求时还需要加⼊好多内容,通过构建⼀个request,服务器响应请求得到应答,这样显得逻辑上清晰明确
quest import urlopen,Request
from fake_useragent import UserAgent#这个包可以随机⽣成User-Agent
url = "www.baidu/"
headers = {"User-Agent":UserAgent().firefox}#⽣成⽕狐的
request = Request(url,headers=headers)
response = urlopen(request)
ad().decode()
Get请求
浏览器通过GET⽅法发出请求
爬⾍主要通过get再url中加⼊请求的参数,由于中⽂的需要转码通过
Urllib.parse.urlencode() 针对多个参数进⾏转码操作输⼊格式为字典类型
Urllib.parse.quote() 针对单个字符串进⾏转码操作
Str格式.format( ) ⽤于拼接字符串
post请求
⼀般在需要登录的地⽅⽤的⽐较多
需要在request请求中加如⼀个data⽤来传⼊参数
参数的形式要以字典格式通过urllib.parse.urlencode()进⾏转换成字符串形式
再通过encode()函数对字符串进⾏转码(默认值就可以)
发送请求/响应header头的含义
名称含义
Accept告诉服务器,客户端⽀持的数据类型
Accept-Charset告诉服务器,客户端采⽤的编码
Accept-Encoding告诉服务器,客户机⽀持的数据压缩格式
Accept-Language告诉服务器,客户机的语⾔环境
Host客户机通过这个头告诉服务器,想访问的主机名
If-Modified-Since客户机通过这个头告诉服务器,资源的缓存时间
Referer客户机通过这个头告诉服务器,它是从哪个资源来访问服务器的。(⼀般⽤于防盗链)
User-Agent客户机通过这个头告诉服务器,客户机的软件环境
Cookie客户机通过这个头告诉服务器,可以向服务器带数据
Refresh服务器通过这个头,告诉浏览器隔多长时间刷新⼀次
Content-Type服务器通过这个头,回送数据的类型
Content-Language服务器通过这个头,告诉服务器的语⾔环境
Server服务器通过这个头,告诉浏览器服务器的类型
Content-Encoding服务器通过这个头,告诉浏览器数据采⽤的压缩格式
Content-Length服务器通过这个头,告诉浏览器回送数据的长度
Ajax请求
⽤于提取动态的页⾯⽹页数据根据拖动进⾏显⽰
通过浏览器⼯具箱,查包的信息,到url的规律进⾏爬取
如果⽆法知道要循环多少次则规定⼀个死循环,爬取页⾯为空时停⽌循环
也可以通过改变url⼀次性输出更多的⽹页信息(只要服务器允许)
https请求
因为在有些浏览器中存在很多证书所以在⼤部分⽹页爬取的时候不⽤改变证书或者添加证书但有些⾃⼰写证书的⽹站需要进⾏这⼀步操作
https请求=在http上加ssl,http请求是明⽂直接可以看见,为了安全要加上ssl
可以选择忽略证书进⾏爬取 context = ssl._create_unverified_context()
到此这篇关于python爬⾍请求头的使⽤的⽂章就介绍到这了,更多相关python爬⾍请求头内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论