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)
posted @ 2020-03-13 11:56  南孚先生  阅读(209)  评论(0编辑  收藏  举报