python爬虫之requests库

      在python爬虫中,要想获取url的原网页,就要用到众所周知的强大好用的requests库,在2018年python文档年度总结中,requests库使用率排行第一,接下来就开始简单的使用requests库吧.html

     配置好python环境后,python配置你们应该都会,至于path路径下载安装界面右下角就有add to path 很简便,这里主要是window环境下的使用,至于Linux环境,我暂时尚未深刻了解,用yum install或者  wget命令都是可行的.python

 在window环境下,推荐是用pip进行安装,由于便捷并且不用考虑文件的解压路径:json

pip install requests

 

  首先requests有文档说明,requests文档 多观察库文档,有利于咱们了解该库建立者的意图,如今能够尝试使用requests库获取一个网页的源代码了:代码以下浏览器

import requests url='https://www.cnblogs.com/hxms/p/10412179.html' response=requests.get(url) print(respones.text)
requests code

      可是为了更好获取源代码,还须要对该代码进行必定的优化,好比是否考虑statue_code==200,响应码是否正常,正常还能够请求该网页,不然返回错误缘由,代码以下:服务器

import requests def get_page(): try: url="https://www.cnblogs.com/hxms/p/10412179.html" response=requests.get(url) if response.status_code==200: return response.text except requests.ConnectionError: return None get_page()
requests Codes

 运用了get_page的函数,对requests的方法进行优化,最后还能够添加main函数进行打印输出python爬虫

def main(): data=get_page() print(data) if __name__ == "__main__": main()

 进行以下ide

   

 

   这样就能够简单的获取网页的源代码了,可是在现实过程当中,网页是通过js渲染的,便可以理解为该HTML只是个空体,只是引用了某个js文本,这样就会形成requests请求的源代码出现错误,形成后期抓不到想要的数据,不过没有关系,F12提供了强大的抓包工具,不管是Ajax或者是直接js渲染的网页,咱们都有相应的解决方法,例如利用selenium库进行自动化运行,抑或是xhr文件里的json字典格式化存储,都是能够解决这些问题的.函数

 关于requests库还有许多参数没用上,好比proxies(代理,抓取数量过大时会致使该请求网址对咱们的IP进行封禁,致使304请求失败),headers(头请求),如今许多网页会设置反爬虫设置,若是你不加请求头的话,服务器是不会返回任何信息给你的,可是requests库为你提供了假装浏览器的方法,运用User-Agent;host等运用字典添加进去,更容易获取咱们想要的信息.更多方法能够参考上面的requests文档.
工具