python post 请求头_python爬虫请求头的使用

爬虫请求头

网页获取:

通过urlopen来进行获取

requset.urlopen(url,data,timeout)

第一个参数url即为URL,第二个参数data是访问URL时要传送的数据,第三个timeout是设置超时时间。

第二三个参数是可以不传送的,data默认为空None,timeout默认为 socket._GLOBAL_DEFAULT_TIMEOUT

第一个参数URL是必须要加入的,执行urlopen方法之后,返回一个response对象,返回信息便保存在这里面

from urllib.request import urlopen

url = "https://www.baidu.com/"

respons = urlopen(url)#最简单的爬取情况这样爬取大部分网页无法爬取成功

response对象:

response.read()

read()方法就是读取文件里的全部内容,返回bytes类型

print(type(respons.read()))#结果为bytes类型所以需要进行转码

print(type(respons.read().decode()))#通过decode转码结果为str

response.getcode()

返回 HTTP的响应码,成功返回200,4服务器页面出错,5服务器问题

response.geturl()

返回 返回实际数据的实际URL,防止重定向问题

response.info()

返回 服务器响应的HTTP报头

Request对象

Request对象,由于urlopen参数可以传入一个request请求(可以理解成为再加一步封装的功能)因为在构建请求时还需要加入好多内容,通过构建一个request,服务器响应请求得到应答,这样显得逻辑上清晰明确

from urllib.request import urlopen,Request

from fake_useragent import UserAgent#这个包可以随机生成User-Agent

url = "https://www.baidu.com/"

headers = {"User-Agent":UserAgent().firefox}#生成火狐的

request = Request(url,headers=headers)

response = urlopen(request)

a=response.read().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爬虫请求头内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

本文标题: python爬虫请求头的使用

本文地址: http://www.cppcns.com/jiaoben/python/367114.html

  • 1
    点赞
  • 2
    收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值