当前位置: 移动技术网 > IT编程>脚本编程>Python > python爬虫之requests库

python爬虫之requests库

2019年02月24日  | 移动技术网IT编程  | 我要评论

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

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

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

pip install 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函数进行打印输出

def main():
    
    data=get_page()

    print(data)

if __name__ == "__main__":

    main()

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

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

 

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网