用python写爬虫(基础)(1)----requests网站成功是第一准则

写爬虫的语言还是有比较多的,java也可以写,但是综合对比起来python拥有许多强大的第三方库,也是一个胶水语言,只要引用第三方库没有做不到的事情,所以我的爬虫就以python为基础撰写。写python的平台很多,我基本以pycharm和anaconda上面进行,学习爬虫的朋友可以先下载好这两个软件,尤其是pycharm我们会频繁的用到。

所谓爬虫就是要模仿浏览器去向服务器请求查看网页,这才是爬虫要做的第一件事情,如果连请求网站都失败,那么自然也无法进入下一步。=============================================

请求的方式有许多,有python自带的,不过我个人推荐使用requests这个第三方库,不仅功能强大而且主要是简单和方便。首先就是安装requests库:

pip install requests

或者在pycharm中:file---settings---python Interpreter点击里面的加号,输入requests,

 

直到出现successfully的字样后表示安装成功。

然后我们就进入正题,去访问百度的页面 

记住用request所获取的网址要完整的,www开头是行不通的。

其次就是想知道获取的东西有哪些,有这样的几个输出:

res.status_code     #响应的HTTP状态码
res.text            #响应内容的字符串形式
res.content         #响应内容的二进制形式
res.encoding        #响应内容的编码
import requests
res=requests.get('http://www.baidu.com/')
print(res.status_code)
#200

 可以看到状态码为200,那么我们访问百度这个网页已经成功,如果出现了其他状态码则意味着或多或少有问题。

1xx开头的HTTP状态码    说明

100    继续。

101    切换协议。

2xx开头的HTTP 状态码    说明
200    确定。客户端请求已成功。
201    已创建。
202    已接受。
203    非权威性信息。
204    无内容。
205    重置内容。
206    部分内容。表明已部分下载了一个文件。可以续传损坏的下载,或者将下载拆分为多个并发的流。
207    多状态(WebDAV)。此消息之前应该还有一条 XML 消息,其中可能包含几个单独的响应代码,具体取决于发出了多少个子请求。
 

3xx开头的HTTP 状态码    说明
301    已永久移动。此请求和之后所有的请求都应该转到指定的 URI。
302    对象已移动。对于基于表单的身份验证,此消息通常表示为“对象已移动”。请求的资源临时驻留在不同的 URI。由于重定向有时可能会改变,客户端将来在请求时应该继续使用 RequestURI。只有在 CacheControl 或 Expires 标题字段中指示,此响应才能够缓存。
304    未修改。客户端请求的文档已在其缓存中,文档自缓存以来尚未被修改过。客户端使用文档的缓存副本,而不从服务器下载文档。
307    临时重定向。
 

4xx开头的HTTP 状态码    说明
400    错误的请求。
401    访问被拒绝。IIS 定义了几个不同的401错误,用于指示更为具体的错误原因。这些具体的错误代码在浏览器中显示,但不在 IIS 日志中显示。详见 401状态码。
403    服务器拒绝请求。可以理解为没有权限访问此网站,服务器能够收到请求但拒绝提供服务。IIS 定义了几个不同的403错误,用于指示更为具体的错误原因,详见 403状态码。
404    服务器找不到请求的网页。例如,访问网站中不存在的页面,或者原有页面被移走或删除,则可能会出现该状态码。IIS 定义了几个不同的404错误,用于指示更为具体的错误原因,详见 404状态码。
405    用来访问本页面的 HTTP 谓词不被允许(方法不被允许)。当客户端向运行 IIS 的服务器发送一个 HTTP 请求,并且该请求包含服务器无法识别的 HTTP 动词时,就会发生此错误。若要解决此问题,请确保客户端的请求使用与 HTTP rfc 兼容的 HTTP 动词。
406    客户端浏览器不接受所请求页面的 MIME 类型。
407    要求进行代理身份验证。
412    前提条件失败。
413    请求实体太大。
414    请求 URI 太长。
415    不支持的媒体类型。
416    无法满足请求的范围。
417    执行失败。
423    锁定的错误。
 

5xx开头的HTTP 状态码    说明
500    内部服务器错误。很多服务器端错误都可能导致此错误消息。事件查看器日志包含更详细的错误原因。此外,您可以禁用友好 HTTP 错误消息以便收到详细的错误说明。IIS 定义了几个不同的500错误,用于指示更为具体的错误原因,详见 500状态码。
501    页眉值指定了未实现的配置。
502    Web 服务器作为网关或代理服务器时,从上游服务器收到了无效响应。此类错误一般与服务器本身有关(与请求无关)。IIS 定义了几个不同的502错误,用于指示更为具体的错误原因,详见 502状态码。
503    目前服务器无法使用,一般是因为服务器超载或停止维护。
504    网关超时。
505    HTTP 版本不受支持。

 

只要不是2开头的或多或少都有问题,就直接说是没有请求成功,这与请求头、对面的反爬手段或者是对方的服务器有关,具体后面教大家慢慢识别。
 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

又封ip了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值