天天看点

Requests爬取网页内容

Requests的简单用法

Requests主要方法:

  • requests.request() #构造一个请求,支撑以下各方法的基础方法
  • requests.get() #get方法获取网页
  • requests.head() #获取网页头信息的方法,对应HTTP的HEAD
  • requests.post() #post方法获取网页信息
  • requests.put() # put方法获取网页信息(一般用不到)
  • requests.patch() # patch方法请求网页信息(一般用不到)
  • requests.delete() #向HTML网页提交删除请求

Requests.get的用法:

import requests	# 导入方法
r = requests.get(url)		#发送请求获得相应
           

Response对象的属性:

  • r.status_code # 返回的状态码,不同状态码代表不同意思,200表示返回正常。
  • r.text #返回对象的文本内容
  • r.content #猜测返回对象的二进制形式
  • r.encoding #分析返回对象的编码方式
  • r.apparent_encoding #相应内容编码方式(备选编码方式)
  • r.raise_for_status() #抛出异常

爬取豆瓣网页信息

分析豆瓣短评网页是动态加载还是静态加载

  1. 在谷歌浏览器中进制js
  2. 如果是静态加载则使用正常URL请求,如果是动态加载则分析真是请求。

使用Requests下载数据

  1. 导入Requests库
  2. 输入URL
  3. 使用GET方法
  4. 打印返回文件
  5. 抛出异常

爬取网页的通用框架

  1. 定义函数
  2. 设置超时
  3. 异常处理
  4. 调用函数

代码:

import requests

def getHTML(url):
    try:
        r = requests.get(url)
        r.raise_for_status()    #抛出异常
        r.encoding = r.apparent_encoding
        return r.text
    except:
        return "请求发生错误错误"

if __name__ == '__main__':
    url = 'https://movie.douban.com/subject/1907464/'
    print(getHTML(url))
           

爬虫协议(robots)

什么是爬虫协议:

爬虫协议又称为robots协议,用来表明那些网站中那些内容可以抓去那些内容不可以抓去。

爬虫协议文件规范:

  1. 必须以robots.txt命名的文本文件保存;
  2. 必须保存在网站的顶级目录下;

爬虫协议参数说明:

拦截所有爬虫:

User-agent:*

Disallow:/

允许所有爬虫:

User-agent:*

Disallow:

Allow:是允许爬取的内容

Disallow:是不允许爬取的内容

Crawl-delay:10:规定爬虫延迟时间为10秒

查看爬虫协议:

直接在URL栏中,在顶级域名后输入robots.txt即可查看

例:www.baidu.com/robots.txt