首页 > 编程知识 正文

python爬虫状态码521(python爬虫状态码404)

时间:2023-12-16 10:45:33 阅读:316307 作者:HKOX

本文目录一览:

Python爬虫之Header

HTTP “请求头信息” Request Header 是向服务端提供客户端的信息,“响应头信息” Response Header 是服务端向客户端提供请求文档信息或服务器的状态信息,服务端判断服务端的身份,就是通过 Header 来判断的,所以爬虫通过设置 Header 来隐藏自己相当重要。

一个完整的HTTP请求包含以下部分:

请求方法 URL HTTP版本

请求头信息

请求数据

一个空行,请求的结束行

常见的请求头:

Accept :客户端接收的数据类型,如:Accept:text/html

User Agent :客户端软件类型

Authorization :认证消息,包括用户名和口令

Referer :用户获取的Web页面

真实的请求头信息会更多,下面是豆瓣某短评的真实请求头:

一个完整的HTTP响应包含以下部分:

状态行

响应头

响应数据

常见的状态行:

更多状态码查看: HTTP状态码

常见的响应头:

Server :Web服务器程序的信息

Date :当前服务器的日期和时间

Last Modified :请求文档最近一次修改的时间

Expires :请求文档过期时间

Content-length :数据长度(字节)

Content-type :数据MIME类型

WWW-authenticate :用于通知客户方需要的认证信息,如用户名,口令等

下面是豆瓣某短评的真实响应头:

Python使用Requests来请求的时候,如果没有设置Header,Header是空的,设置Header的方法如下:

python爬虫错误提示

你这个url里面的单引号用的有问题呀,如果用单引号那外围就用双引号,里面套单引号,或者不用,你这都用单引号,应该会报错的。

全方面的掌握Requests库的使用【python爬虫入门进阶】(02)

上一篇文章简单的介绍了 爬虫相关的基础知识点,介绍了一个标准爬虫程序的三个步骤 。这篇文章就让我们接着来学习。

本文重点介绍requests库的使用以及爬虫协议。之前也写了一篇 Requests库使用的博客 ,有兴趣的小伙伴可以去看看。

前面介绍了Requests库是用来抓取网页源码,请求接口的利器,整体上是要比urllib库的request更加好用的库。官网上将其称之为唯一一个非转基因的Python HTTP库,人类可以安全享用。

Requests库有7个主要方法。

不过我们平常最常用的方法还是GET方法和POST方法。

get请求方法是爬虫中最常用到的方法,因为爬虫主要就是爬取网页的信息。最基础的使用是

这里需要通过 res.encoding='utf-8' 设置响应结果的编码格式是utf-8。不然可能会出现中文乱码

如果响应结果是二进制数据的话则需要通过 res.content 方法来提取响应结果。

设置编码的方式也可以是 res.content.decode('utf-8') 。

有时候get请求也需要传入参数,这里可以直接将参数拼接到URL上或者通过params参数传入一个字典。

运行结果是:

get请求只能传入简单的参数,如果参数比较复杂或者传入的参数比较多的话则GET请求就不再适用了,这时候就需要适用post请求方法了。

Post请求的请求类型有三种:

以表单的方式提交数据是POST请求的默认的请求格式,只需要将参数放在一个字典中进行传入即可。

这里将请求头的数据放在一个名为header的字典中,然后在请求时通过headers参数传入。在请求中设置了内容类型是 application/json ,编码格式是 charset=utf-8

传入的是一个json字符串,通过data参数进行传入。json字符串可以直接写也可以通过 json.dumps(dict) 方法将一个字典序列化,就像下面这样。

文件上传与本节爬虫的内容无关,在此就不过多介绍了。有兴趣的小伙伴可以看看 Python中如何编写接口,以及如何请求外部接口 这篇文章。

在网络请求中,我们常常会遇到状态码是3开头的重定向问题,在Requests中是默认开启允许重定向的,即遇到重定向时,会自动继续访问。通过将allow_redirects 属性设置为False不允许重定向。

通过timeout属性可以设置超时时间,单位是秒。get方法和post方法均可设置。

通过status_code属性可以获取接口的响应码。

有时候我们使用了抓包工具,这时候由于抓包证书提供的证书并不是受信任的数字证书颁发机构颁发的,所以证书的验证会失败,所以我们就需要关闭证书验证。在请求的时候把verify参数设置为False就可以关闭证书验证了。

爬虫协议也叫做robots协议,告诉网络蜘蛛哪些页面可以爬取,哪些页面不能爬取

爬虫文件的规范是:

允许所有的机器人

本文详细介绍了Request库的使用

python 爬虫时,urllib2.HTTPError:HTTP Error 502:Bad Gateway是什么原因?怎么解决?

可能是那个网站阻止了这类的访问,只要在请求中加上伪装成浏览器的header就可以了,比如:

headers = {  

    'User-Agent':'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'  

}  

req = urllib2.Request(  

    url = ""

,

    headers = headers

)

myResponse  = urllib2.urlopen(req)

请教各位,python编写爬虫,返回http error 521怎么解决

有些网站使用了Cookie,如果你没有进行处理,服务器当然就不认咯。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。