• Python网络爬虫【持续更新】-requests库的使用


    什么是request库

    • Requests是一常用的http请求库,它使用python语言编写,可以方便地发送http请求,以及方便地处理响应结果。
    • Requests库使用了面向对象的思想。对于用户的请求,封装成了一个request类,此类包含了Http协议请求的部分相关内容。在用户使用了相应的Get等方法后,会返回一个response对象,该对象包含了Http协议相应的部分相关内容。方便用户通过这些对象,进行相关的分析和操作。

    request库的基本用法

    常见的属性

    • requests.encoding -通过请求头,分析出当前的编码
    • requests.apparentEncoding - 通过内容,分析出当前编码
    • requests.status_code - 返回当前请求的状态码
    • requests.content -返回二进制形式的相应内容
    • requests.text -返回文本形式的相应内容

    常见的方法

    • request.get(url,**arg) -相应类型的还有post、put等类似,不赘述
      对于get方法而言,参数分为两部分。一部分是url,即当前要访问的url;另一部分是各种参数,例如:paramers,headers等等,这些参数可以完善一个请求的相关信息。

    • request.raise_for_status() -判断本次请求返回的状态码,如果不是200则抛出异常

    使用request库时注意的一些事项

    • 由于许多网站都设置了反爬虫机制,例如Robots协议,所以爬虫的时候可能会出现一些问题。当你使用第三方库爬虫的时候,requsts请求头会把你的身份信息泄漏(请求头会有个标志,代表你是通过爬虫的方式来访问其网站的),那么这样网站往往会拒绝你的访问。此时,就需要利用requests.get()方法里面的参数设置(headers=xxx),将你的头部信息改为一般用户的访问,才能够不被浏览器拦截。
    • 爬虫的时候,快速多次访问同一个域名,可能会导致你的ip被拉入黑名单,所以编程的时候一定不要过频访问同一个地址(或者技术可以的话,实现伪ip实时转换来反反爬虫)。
    • 目前很多网站都规定了可爬虫范围(每个网站根目录下都有个robots.txt文件),如果你访问了不允许爬虫的网站,可能需要承担法律责任。慎重!!!

    request代码基本框架

    import requests
    
    def getHTML(url):
        try:
            str_Head = {'user-agent':'Mozilla/5.0'}
            r = requests.get(url,headers=str_Head)
            r.raise_for_status()
            r.encoding = r.apparent_encoding
            print(r.text)
        except:
            print("Failure accessing...try again")
    
    if __name__ == "__main__":
        url = "https://www.amazon.com/"
        getHTML(url)
    
  • 相关阅读:
    趣味算法:国王和100个囚犯(据说是腾讯的面试题)
    限制文本框的输入(兼容FF,IE)
    切换家里和公司网络的脚本
    onchange,onpropertychange,oninput的使用
    正则匹配html标记
    javascript清空数组的三种方法
    正则查找重复
    (正则)提取页面里的img标签
    javascript类型检测(转载)
    查看sqlserver信息
  • 原文地址:https://www.cnblogs.com/782687539-nanfu/p/12707586.html
Copyright © 2020-2023  润新知