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() #抛出异常
爬取豆瓣网页信息
分析豆瓣短评网页是动态加载还是静态加载
- 在谷歌浏览器中进制js
- 如果是静态加载则使用正常URL请求,如果是动态加载则分析真是请求。
使用Requests下载数据
- 导入Requests库
- 输入URL
- 使用GET方法
- 打印返回文件
- 抛出异常
爬取网页的通用框架
- 定义函数
- 设置超时
- 异常处理
- 调用函数
代码:
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协议,用来表明那些网站中那些内容可以抓去那些内容不可以抓去。
爬虫协议文件规范:
- 必须以robots.txt命名的文本文件保存;
- 必须保存在网站的顶级目录下;
爬虫协议参数说明:
拦截所有爬虫:
User-agent:*
Disallow:/
允许所有爬虫:
User-agent:*
Disallow:
Allow:是允许爬取的内容
Disallow:是不允许爬取的内容
Crawl-delay:10:规定爬虫延迟时间为10秒
查看爬虫协议:
直接在URL栏中,在顶级域名后输入robots.txt即可查看
例:www.baidu.com/robots.txt