【爬虫案例】Requests爬取豆瓣短评以及入门爬虫注意事项

一、Requests是什么?

Requests 是一个 Python 的 HTTP 客户端库。

支持的 HTTP 特性:

保持活动和连接池、国际域名和URL、Cookie持久性会话
浏览器式SSL验证、自动内容解码、基本/摘要身份验证、优雅的键/值Cookie、自动减压、Unicode响应机构、HTTP(S)代理支持
分段文件上传、流下载、连接超时、分块请求、.netrc支持、线程安全

Requests库的七个主要方法(掌握get即可

requests.request() 构造一个请求,支撑以下各方法的基础方法
requests.get() 获取HTML网页的主要方法,对应于HTTP的GET
requests.head() 获取HTML网页头信息的方法,对应于HTTP的HEAD
requests.post() 向HTML网页提交POST请求的方法,对应于HTTP的POST
requests.put() 向HTML网页提交PUT请求的方法,对应于HTTP的PUT
requests.patch() 向HTML网页提交局部修改请求,对应于HTTP的PATCH
requests.delete() 向HTML网页提交删除请求,对应于HTTP的DELETE

二、爬取步骤

1.安装requests
(1)pip安装

pip install requests

(2)打开ide的相应位置(以pycharm为例)
【爬虫案例】Requests爬取豆瓣短评以及入门爬虫注意事项_第1张图片
2.设置网页
【爬虫案例】Requests爬取豆瓣短评以及入门爬虫注意事项_第2张图片
【爬虫案例】Requests爬取豆瓣短评以及入门爬虫注意事项_第3张图片
3.开始爬取

爬取网页通用框架定义函数=>设置超时=>异常处理=>调用函数

爬取代码:

# 导入Requests
import requests
# 爬取url
url = "https://www.douban.com/"
# 定义获取Text内容
def getHTMLText(url):
  try:
    # 设置请求头(豆瓣设有反爬机制)
    headers = {
     
    'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36'
    }
    response = requests.get(url, headers=headers, timeout=200);  # 设置超时
    response.raise_for_status()
    response.encoding = 'utf-8'
    return response.text
  except:
    return "产生异常"
# __name__ 是当前模块名,当模块被直接运行时模块名为 __main__ 。
# 这句话的意思就是,当模块被直接运行时,以下代码块将被运行,当模块
# 是被导入时,代码块不被运行
# 相当于入口
if __name__ == '__main__':
  print(getHTMLText(url))

r.status_code:http请求的返回状态,200表示连接成功(阅读HTTP状态码,了解各状态码含义)
r.text:返回对象的文本内容
r.content:猜测返回对象的二进制形式
r.encoding:分析返回对象的编码方式
r.apparent_encoding:响应内容编码方式(备选编码方式)

三、注意事项
爬虫协议

什么是爬虫协议:爬虫协议,也被叫做robots协议,是为了告诉网络蜘蛛哪些页面可以抓取,哪些页面不能抓取

如何查看爬虫协议:在访问网站域名后加上robots.txt即可,例如查看百度网站的爬虫协议:https://www.baidu.com/robots.txt

爬虫协议属性:
拦截所有的机器人:
User-agent: *
Disallow: /

允许所有的机器人:
User-agent: *
Disallow:
阅读robots协议,了解更多爬虫协议属性。

爬虫建议

爬取互联网公开数据
尽量放慢你的速度
尽量遵循robots协议
不要用于商业用途
不要公布爬虫程序与数据

你可能感兴趣的:(Python,python,http,web)