• 【python】第一个爬虫:用requests库爬取网页内容


    requests库介绍

    requests 库是一个简洁且简单的处理HTTP请求的第三方库。

    requests的最大优点是程序编写过程更接近正常URL 访问过程。

     get()是获取网页最常用的方式,在调用requests.get()函数后,返回的网页内容会保存为一个Response 对象,其中,get()函数的参数url 必须链接采用HTTP 或HTTPS方式访问。和浏览器的交互过程一样,requests.get()代表请求过程,它返回的Response 对象代表响应。返回内容作为一个对象更便于操作,Response 对象的属性如下表所示,需要采用<a>.<b>形式使用。

    status_code 属性返回请求HTTP 后的状态,在处理数据之前要先判断状态情况,如果请求未被响应,需要终止内容处理。 text 属性是请求的页面内容,以字符串形式展示。encoding 属性非常重要,它给出了返回页面内容的编码方式,可以通过对encoding 属性赋值更改编码方式,以便于处理中文字符 content 属性是页面内容的二进制形式。

    json()方法能够在HTTP 响应内容中解析存在的JSON 数据,这将带来解析HTTP的便利。

    raise_for_status()方法能在非成功响应后产生异常,即只要返回的请求状态status_code 不是200,这个方法会产生一个异常,用于try…except 语句。使用异常处理语句可以避免设置一堆复杂的if 语句,只需要在收到响应调用这个方法,就可以避开状态字200 以外的各种意外情况。

    requests 会产生几种常用异常。当遇到网络问题时,如:DNS 查询失败、拒绝连接等,requests 会抛出ConnectionError 异常;遇到无效HTTP 响应时,requests 则会抛出HTTPError 异常;若请求url 超时,则抛出Timeout 异常;若请求超过了设定的最大重定向次数,则会抛出一个TooManyRedirects 异常。

    用requests库访问百度网站20次,代码如下:

    1 import requests
    2 for i in range (20):
    3     print("",i+1,"次访问")
    4     r=requests.get("http://www.baidu.com")
    5     r.encoding='utf-8'
    6     print("返回状态:",r.status_code)
    7     print(r.text)
    8     print("text属性长度:",len(r.text))
    9     print("content属性长度:",len(r.content))

    效果图:

                    

  • 相关阅读:
    视频像素点级的标注
    unet
    Emmet缩写语法
    Nginx漏洞利用与安全加固
    算法时间复杂度
    动态规划dp
    数据结构Java实现04---树及其相关操作
    关于递归
    Java正则表达式
    Java String相关
  • 原文地址:https://www.cnblogs.com/litchi666/p/12884965.html
Copyright © 2020-2023  润新知