|
Python提供了多个用来编写爬虫程序的库,除了前面已经介绍的urllib库之外,还有一个很重的Requests库,这个库的宗旨是“让HTTP服务于人类”。PythonrequestsRequests是Python的第三方库,它的安装非常简便,如下所示:python-mpipinstallrequests12Requests库是在urllib的基础上开发而来,它使用Python语言编写,并且采用了Apache2Licensed(一种开源协议)的HTTP库。与urllib相比,Requests更加方便、快捷,因此在编写爬虫程序时Requests库使用较多。常用请求方法1)requests.get()该方法用于GET请求,表示向网站发起请求,获取页面响应对象。语法如下:res=requests.get(url,headers=headers,params,timeout)12参数说明如下:•url:要抓取的url地址。•headers:用于包装请求头信息。•params:请求时携带的查询字符串参数。•timeout:超时时间,超过时间会抛出异常。具体使用示例如下:importrequestsurl='http://baidu.com'response=requests.get(url)print(response)12345输出结果:12获取带查询字符串参数的响应对象,如下所示:importrequestsdata={'name':'编程帮','url':"www.biancheng.net"}response=requests.get('http://httpbin.org/get',params=data)#直接拼接参数也可以#response=requests.get(http://httpbin.org/get?name=gemey&age=22)#调用响应对象text属性,获取文本信息print(response.text)1234567891011输出结果:{"args":{"name":"\u7f16\u7a0b\u5e2e","url":"www.biancheng.net"},"headers":{"Accept":"*/*","Accept-Encoding":"gzip,deflate","Host":"httpbin.org","User-Agent":"python-requests/2.23.0","X-Amzn-Trace-Id":"Root=1-60420026-236f9205646b68706d0fafa7"},"origin":"121.17.25.194","url":"http://httpbin.org/get?name=\u7f16\u7a0b\u5e2e&url=www.biancheng.net"}123456789101112131415162)requests.post()该方法用于POST请求,先由用户向目标url提交数据,然后服务器返回一个HttpResponse响应对象,语法如下:response=requests.post(url,data={请求体的字典})12示例如下所示:importrequests#百度翻译url='https://fanyi.baidu.com'#post请求体携带的参数,可通过开发者调试工具查看#查看步骤:NetWork选项->Headers选项->FormDatadata={'from':'zh','to':'en','query':'编程帮www.biancheng.net你好'}response=requests.post(url,data=data)print(response)123456789101112输出结果:12查看FormData的步骤,如下图所示:Python爬重开发者工具使用对象属性当我们使用Requests模块向一个URL发起请求后会返回一个HttpResponse响应对象,该对象具有以下常用属性:常用属性说明encoding查看或者指定响应字符编码status_code返回HTTP响应码url查看请求的url地址headers查看请求头信息cookies查看cookies信息text以字符串形式输出content以字节流形式输出,若要保存下载图片需使用该属性。使用示例如下所示:importrequestsresponse=requests.get('http://www.baidu.com')print(response.encoding)response.encoding="utf-8"#更改为utf-8编码print(response.status_code)#打印状态码print(response.url)#打印请求urlprint(response.headers)#打印头信息print(response.cookies)#打印cookie信息print(response.text)#以字符串形式打印网页源码print(response.content)#以字节流形式打印1234567891011输出结果:#编码格式ISO-8859-1#响应码200#url地址http://www.baidu.com/#请求头信息{'Cache-Control':'private,no-cache,no-store,proxy-revalidate,no-transform','Connection':'keep-alive','Content-Encoding':'gzip','Content-Type':'text/html','Date':'Mon,08Mar202105:19:33GMT','Last-Modified':'Mon,23Jan201713:27:29GMT','Pragma':'no-cache','Server':'bfe/1.0.8.18','Set-Cookie':'BDORZ=27315;max-age=86400;domain=.baidu.com;path=/','Transfer-Encoding':'chunked'}#查看cookies信息]>...内容过长,此处省略后两项输出123456789101112Requests库应用示例应用:使用Requsets库下载百度图片。首先打开百度图片(https://image.baidu.com/),并在输入框搜索“pythonlogo”,然后使用Chrome开发者工具查看第一张图片的源地址,即data-imgurl所对应的url地址,如下所示:data-imgurl="https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=38785274,1357847304&fm=26&gp=0.jpg"12可以将上述url粘贴至浏览器地址栏进行验证。当我们确定图片地址后,就可以使用requests库进行编码了:importrequestsurl='https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=38785274,1357847304&fm=26&gp=0.jpg'#简单定义浏览器ua信息headers={'User-Agent':'Mozilla/4.0'}#读取图片需要使用content属性html=requests.get(url=url,headers=headers).content#以二进制的方式下载图片withopen('C:/Users/Administrator/Desktop/image/python_logo.jpg','wb')asf:f.write(html)12345678910最后,您会在桌面文件夹中找到已经下载好的图片,如下所示:这里给大家分享一份Python全套学习资料,包括学习路线、软件、源码、视频、面试题等等,都是我自己学习时整理的,希望可以对正在学习或者想要学习Python的朋友有帮助!如果大家对Python感兴趣,这套python学习资料一定对你有用对于0基础小白入门:如果你是零基础小白,想快速入门Python是可以考虑的。一方面是学习时间相对较短,学习内容更全面更集中。二方面是可以根据这些资料规划好学习计划和方向。包括:Python激活码+安装包、Pythonweb开发,Python爬虫,Python数据分析,人工智能、机器学习、Python量化交易等习教程。带你从零基础系统性的学好Python!零基础Python学习资源介绍①Python所有方向的学习路线图,清楚各个方向要学什么东西②600多节Python课程视频,涵盖必备基础、爬虫和数据分析③100多个Python实战案例,含50个超大型项目详解,学习不再是只会理论④20款主流手游迫解爬虫手游逆行迫解教程包⑤爬虫与反爬虫攻防教程包,含15个大型网站迫解⑥爬虫APP逆向实战教程包,含45项绝密技术详解⑦超300本Python电子好书,从入门到高阶应有尽有⑧华为出品独家Python漫画教程,手机也能学习⑨历年互联网企业Python面试真题,复习时非常方便👉Python学习路线汇总👈Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取哈)👉Python必备开发工具👈温馨提示:篇幅有限,已打包文件夹,获取方式在:文末👉Python学习视频600合集👈观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。👉实战案例👈光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。👉100道Python练习题👈检查学习结果。👉面试刷题👈资料领取这份完整版的Python全套学习资料已经上传网盘,朋友们如果需要可以点击下方微信卡片免费领取↓↓↓【保证100%免费】
|
|