本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。

开始正文

Requests库是Python爬虫中最最最最最最重要与常见的库,一定要熟练掌握它.

下面我们来认识这个库

Requests

requests是Python最为常用的http请求库,也是极其简单的.使用的时候,首先需要对requests进行安装,直接使用Pycharm进行一键安装。最后,如果你的时间不是很紧张,并且又想快速的提高,最重要的是不怕吃苦,建议你可以联系维:mengy7762 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~

1.响应与编码

import requests
url = 'http://www.baidu.com'
r = requests.get(url)
print type(r)
print r.status_code
print r.encoding
#print r.content
print r.cookies得到:
<class 'requests.models.Response'>
200
ISO-8859-1
<RequestsCookieJar[<Cookie BDORZ=27315 for .baidu.com/>]>

2.Get请求方式

values = {'user':'aaa','id':'123'}
url = 'http://www.baidu.com'
r = requests.get(url,values)
print r.url得到:http://www.baidu.com/?user=aaa&id=123

3.Post请求方式

values = {'user':'aaa','id':'123'}
url = 'http://www.baidu.com'
r = requests.post(url,values)
print r.url
#print r.text得到:
http://www.baidu.com/

4.请求头headers处理

user_agent = {'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.4295.400 QQBrowser/9.7.12661.400'}
header = {'User-Agent':user_agent}
url = 'http://www.baidu.com/'
r = requests.get(url,headers=header)
print r.content

注意处理请求的headers
很多时候我们服务器会检验请求是否来自于浏览器,所以我们需要在请求的头部伪装成浏览器来请。求服务器.一般做请求的时候,最好都要伪装成浏览器,防止出现拒绝访问等错误,这也是一种反爬虫的一种策略。最后,如果你的时间不是很紧张,并且又想快速的提高,最重要的是不怕吃苦,建议你可以联系维:mengy7762 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~

特别说明,以后无论我们做什么请求,一定要带上headers,千万不要偷懒省事,把这里当成一条交通规则来理解,闯红灯不一定会发生危险但不安全,为了省事,我们遵循红灯停绿灯行就够了,做网络爬虫请求也一样,必须把这个headers加上,以防出错.

user_agent = {'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.4295.400 QQBrowser/9.7.12661.400'}
header = {'User-Agent':user_agent}
url = 'http://www.qq.com/'
request = urllib2.Request(url,headers=header)
response = urllib2.urlopen(request)
print response.read().decode('gbk')#这里注意一下需要对读取的网页内容进行转码,先要查看一下网页的chatset是什么格式.

在浏览器上打开www.qq.com然后按F12,查看User-Agent:

User-Agent : 有些服务器或 Proxy 会通过该值来判断是否是浏览器发出的请求
Content-Type : 在使用 REST 接口时,服务器会检查该值,用来确定 HTTP Body 中的内容该怎样解析。
application/xml :在 XML RPC,如 RESTful/SOAP 调用时使用
application/json :在 JSON RPC 调用时使用
application/x-www-form-urlencoded :浏览器提交 Web 表单时使用
在使用服务器提供的 RESTful 或 SOAP 服务时, Content-Type 设置错误会导致服务器拒绝服务

5.响应码code与响应头headers处理

url = 'http://www.baidu.com'
r = requests.get(url)if r.status_code == requests.codes.ok:print r.status_codeprint r.headersprint r.headers.get('content-type')#推荐用这种get方式获取头部字段
else:r.raise_for_status()得到:
200
{'Content-Encoding': 'gzip', 'Transfer-Encoding': 'chunked', 'Set-Cookie': 'BDORZ=27315; max-age=86400; domain=.baidu.com; path=/', 'Server': 'bfe/1.0.8.18', 'Last-Modified': 'Mon, 23 Jan 2017 13:27:57 GMT', 'Connection': 'Keep-Alive', 'Pragma': 'no-cache', 'Cache-Control': 'private, no-cache, no-store, proxy-revalidate, no-transform', 'Date': 'Wed, 17 Jan 2018 07:21:21 GMT', 'Content-Type': 'text/html'}
text/html

6.cookie处理

url = 'https://www.zhihu.com/'
r = requests.get(url)
print r.cookies
print r.cookies.keys()得到:
<RequestsCookieJar[<Cookie aliyungf_tc=AQAAACYMglZy2QsAEnaG2yYR0vrtlxfz for www.zhihu.com/>]>
['aliyungf_tc']

7重定向与历史消息

处理重定向只是需要设置一下allow_redirects字段即可,将allow_redirectsy设置为True则是允许重定向的,设置为False则禁止重定向的最后,如果你的时间不是很紧张,并且又想快速的提高,最重要的是不怕吃苦,建议你可以联系维:mengy7762 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~

r = requests.get(url,allow_redirects = True)
print r.url
print r.status_code
print r.history得到:
http://www.baidu.com/
200
[]

8.超时设置

超时选项是通过参数timeout来设置的
python url = ‘http://www.baidu.com’ r = requests.get(url,timeout = 2)

9.代理设置

proxis = {'http':'http://www.baidu.com','http':'http://www.qq.com','http':'http://www.sohu.com',}url = 'http://www.baidu.com'
r = requests.get(url,proxies = proxis)

如果你觉得文章还不错,请大家点赞分享下。你的肯定是我最大的鼓励和支持。

Python爬虫中最重要、最常见、一定要熟练掌握的库相关推荐

  1. python爬虫用urllib还是reques,python爬虫中urllib.request和requests有什么区别?

    在学习python爬虫,想要检索request相关内容时,往往会出现urllib.request和requests这两个词,urllib.request和requests都是python爬虫的模块,其 ...

  2. python爬虫框架怎么安装_celery如何在python爬虫中安装?

    在我们学习了不少关于celery框架的知识后,很多小伙伴已经想要正式使用celery了.这里小编也不知道大家安装好了celery没有~为了照顾一下动手能力不太强的python小白,小编把celery框 ...

  3. io密集型和cpu密集型_一次说明白Python爬虫中多线程,多进程,异步IO编程

    图/文:迷神 我们在Python爬虫中,重要的是讲究速度,如果有10万或者100万Url地址,写过爬虫的都会知道,那估计是非常慢的.我们的Python爬虫一般IO密集型业务,Python爬虫程序需要发 ...

  4. Requests如何在Python爬虫中实现post请求 ?

    urllib库作为python基础的工具,想必大家已经学的差不多了.作为一个有理想,有抱负的小白当然要向python大神进阶.小编查询了一些资料,发现Requests库也是不错的选择.post请求和r ...

  5. python爬虫中遇到“\xb5”、“xa0”等字符时报错编码错误的处理方式

    写python爬虫是遇到编码错误 报错为: UnicodeEncodeError: 'gbk' codec can't encode character '\xa0' 经过多方查找发现 \xa0是ht ...

  6. python中cookies怎么用_Cookie在python爬虫中怎么用?Cookielib又是什么?

    我们登录一个网页或者软件的时候,都要输入账号才能进入界面,随后就可以看其中的内容了.Cookie就类似于担任一个审查员的身份.对想要访问人的身份进行大大小小的审核,合格的才能放任通行,之后我们就可以愉 ...

  7. python爬虫中for循环无法每一段输出_Python入门到掌握只需要这3大,4类,5大,6种,即可,附教程...

    简介:要快速学会Python,谨记3456这四个数字就可以了.鉴于大多数书籍在编写上都结构混乱,无法体现出知识的系统性.逻辑性和层次性.特整理出学Python最基础的知识学习框架,希望帮助大家快速入门 ...

  8. python爬虫怎么发布请求_http请求如何在python爬虫中实现?

    最近我们会比较多的提到网页,因为这和python中的爬虫密切相关.当然,我们也会需要处理一些网页的请求.处理http的方法并不是单一的,学过urllib库的小伙伴好好思考下,其中有没有解决的办法呢?答 ...

  9. Python学习中的无效语法常见原因和解决办法分析

    Python以其简单的语法而闻名.然而,当您第一次学习Python时,或者当您具有另一种编程语言的坚实背景时,您可能会遇到一些Python不允许的事情.如果您在尝试运行Python代码时收到过Synt ...

最新文章

  1. Python改变生活 | 轻松识别数百个快递单号
  2. 看完让你彻底搞懂Websocket原理
  3. web前段学习day_01:HTML(学习如何搭建页面结构和内容):文本标签、列表标签、图片标签、超链接、表格、表单表单、分区标签、实体引用
  4. 推荐!计算机视觉最适合入门的 8 本教程,算法与实战兼备
  5. iOS中的唯一标示符
  6. java删除csv一行_如何删除两个CSV之间的不常见行?
  7. 索引更新:刚发布的文章就能被搜到,这是怎么做到的?
  8. SVD在推荐系统中的推导及应用-简单明了
  9. 数据库问题6-將系統資料表對應至系統檢視
  10. mysql主从同步开启后的iptables的设定问题
  11. Piggydb 6.2 发布,个人知识库管理
  12. 易实战Spring Boot 2 资源汇总 从入门到精通 内含实战github代码 毫无保留分享
  13. c++使用libiconv
  14. activemq事务处理及签收
  15. 2020低压电工模拟考试及低压电工复审模拟考试
  16. Windows 11 LTSC 数字激活方法/HEU KMS Activator 数字激活/LTSC公key激活
  17. windows安装scala
  18. 参照系(参考系)与参照物的区别
  19. 硬件设计23之三极管开关原理与场效应管开关原理
  20. 庄子 汝身非汝有也。

热门文章

  1. python的read函数调用报错_从零开始学Python(七):文件存储I/O流和异常捕捉
  2. java导入包srcy有红叉_eclipse导入项目后出现红色叉号的解决方案
  3. mysql proxy ro-pooling.lua_MySQL读写分离
  4. java响应式网页设计_基于HTML5的响应式网站的设计与实现(论文).docx
  5. python什么时候用进程什么时候用线程_Python多线程/多进程释疑:为啥、何时、怎么用?...
  6. 计算机的未来科技作文700字,未来的科技与绿*的作文700字
  7. nginx正向代理https,zabbix内网实现企业微信告警
  8. Linux通过SSH实现免密登录
  9. 洛谷P2351 [SDOi2012]吊灯 【数学】
  10. linux 基本配置tab键和显示行号 和中文输入法