Requests

Posted liguangyang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Requests相关的知识,希望对你有一定的参考价值。

最友好的网络爬虫库

1. requests库的安装

采用pip安装方式,在cmd界面输入:

pip install requests 

2. 示例代码

我们将处理http请求的头部处理来简单进行反反爬虫处理,以及代理的参数设置,异常处理等。

 1 import requests
 2  
 3  
 4 def download(url, num_retries=2, user_agent=wswp, proxies=None):
 5     ‘‘‘下载一个指定的URL并返回网页内容
 6         参数:
 7             url(str): URL
 8         关键字参数:
 9             user_agent(str):用户代理(默认值:wswp)
10             proxies(dict): 代理(字典): 键:‘http’https
11             值:字符串(‘http(s)://IP’)
12             num_retries(int):如果有5xx错误就重试(默认:213             #5xx服务器错误,表示服务器无法完成明显有效的请求。
14             #https://zh.wikipedia.org/wiki/HTTP%E7%8A%B6%E6%80%81%E7%A0%81
15     ‘‘‘
16     print(==========================================)
17     print(Downloading:, url)
18     headers = {User-Agent: user_agent} #头部设置,默认头部有时候会被网页反扒而出错
19     try:
20         resp = requests.get(url, headers=headers, proxies=proxies) #简单粗暴,.get(url)
21         html = resp.text #获取网页内容,字符串形式
22         if resp.status_code >= 400: #异常处理,4xx客户端错误 返回None
23             print(Download error:, resp.text)
24             html = None
25             if num_retries and 500 <= resp.status_code < 600:
26                 # 5类错误
27                 return download(url, num_retries - 1)#如果有服务器错误就重试两次
28  
29     except requests.exceptions.RequestException as e: #其他错误,正常报错
30         print(Download error:, e)
31         html = None
32     return html #返回html
33  
34  
35 print(download(http://www.baidu.com))

 

结果:

 1 Downloading: http://www.baidu.com
 2 <!DOCTYPE html>
 3 <!--STATUS OK-->
 4 ...
 5 </script>
 6  
 7 <script>
 8 if(navigator.cookieEnabled){
 9     document.cookie="NOJS=;expires=Sat, 01 Jan 2000 00:00:00 GMT";
10 }
11 </script>
12  
13  
14  
15 </body>
16 </html>

 

 

 

 

 

转载于:https://my.oschina.net/u/3849396/blog/3000124

以上是关于Requests的主要内容,如果未能解决你的问题,请参考以下文章

302 登录重定向后被 IE 删除的 URL 片段

Nginx 跨域

利用requests获取网页的源代码

全网最全Requests库详解,实例引入,代码分析(ip代理,用户认证,证书检测)

爬虫之requests介绍

python 用requests获取网页源代码为啥中文显示错误