温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Python中怎么利用Requests实现网络请求

发布时间:2021-07-10 14:31:31 阅读:257 作者:Leah 栏目:大数据
Python开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

Python中怎么利用Requests实现网络请求,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

场景

>>> r = requests.get('https://google.cn') # get>>> r<Response [200]> # HTTP 响应200>>> r.headers['content-type'] # 网页类型'text/html'>>> r.encoding # 正在使用的编码'ISO-8859-1
   

基础用法

上面这个是最简单的,不需要上面认证、服务器认证代理、请求内容、定制头等,比如带上请求数据,把需要的数据封装为字典,然后用 params 带入即可。

# 在浏览器访问的网址是# https://google.cn/get?key2=value2&key1=value1# 用 Requests 来访问>>> payload = {'key1''value1''key2''value2'}>>> r = requests.get('https://google.cn/get', params=payload)
 

对返回的内容还可以解析,有一个内置的 JSON 解码器,不过是针对一个返回的是一个字典,如果是多个字典的话,有报错异常提示。

>>> import requests>>> r = requests.get('https://google.cn/events')>>> r.json()[{u'repository': {u'open_issues'0u'url''https://google.cn/...
 

如果JSON解码失败,则 r.json() 引发异常。例如,如果响应获得 204(无内容),或者响应包含无效的 JSON ,则尝试 r.json() 引发。

ValueErrorNo JSON object could be decoded
 

自定义 header 内容

>>> headers = {'user-agent''my-app/0.0.1'}>>> r = requests.get(url, headers=headers)
 

对于 POST 的请求,则需要带上 data

>>> payload = {'key1''value1''key2''value2'}>>> r = requests.post("https://google.cn/post"data=payload)
    

在爬取数据的时候,有时候会遇到网站是用 cookies 来访问的,这个时候需要认证,获取到 cookies,然后带上参数 cookies 即可访问。

>>> url = 'https://google.cn/cookies'>>> cookies = dict(cookies_are='working')>>> r = requests.get(url, cookies=cookies)
 

还有一些网站反「爬」机制的,会加上多个路径的 cookies,就可以用到

>>> jar = requests.cookies.RequestsCookieJar()>>> jar.set('tasty_cookie''yum', domain='httpbin.org', path='/cookies')>>> jar.set('gross_cookie''blech', domain='httpbin.org', path='/elsewhere')>>> url = 'https://google.cn/cookies'>>> r = requests.get(url, cookies=jar)

关于Python中怎么利用Requests实现网络请求问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

原文链接:https://my.oschina.net/u/4210031/blog/4835507

AI

开发者交流群×