1. 背景
本文是在学习嵩天老师的Python网络爬虫与信息提取后所做的一些笔记和总结。
2. HTTP请求方法
方法
说明
GET
请求获取URL位置的资源
HEAD
请求获取URL位置资源的响应信息报告,即获取该资源的头部信息
POST
请求向URL位置的资源后附加新的数据
PUT
请求向URL位置存储一个资源,覆盖原URL位置的资源
PATCH
请求局部更新URL位置的资源,即改变该处资源的部分内容
DELETE
请求删除URL位置存储的资源
3. Requests库的7种方法
方法
说明
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
总结:
requests的get()、head()、post()、put()、patch()和delete()都是对request()的封装,它们实现的功能都可以直接由request()实现。
get()用于获取网页的html代码,而head()用于获取网页头部,主要针对需要网页头部信息以及网页代码过多不宜全部获取或打印的情况。
post()相当于新增资源,put()相当于全部修改局部资源,patch()相当于部分修改局部资源,delete()相当于删除资源。
4. 基本程序
import requests
url1 = 'https://www.jianshu.com/u/25f12f0049c5' # 简书博客的URL
header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3941.4 Safari/537.36'
}
def get_html_text(url):
try:
r = requests.get(url, headers=header, timeout=5) # 发起请求,5秒后未响应则报错
r.raise_for_status() # 响应的状态非200,则报错
r.encoding = r.apparent_encoding # r.encoding是网页默认编码,r.apparent_encoding是通过识别网页内容而确认的编码
print(r.text[0:1000]) # 只打印1000个字符
return r.text
except:
print("请求出错!")
return ''
if __name__ == '__main__':
get_html_text(url1)
4. 小结
嵩天老师的Python网络爬虫与信息提取所讲内容基础而规范,对于初入门的人可以好好学习。从中,我主要学习其使用python爬虫的语言规范,并对python爬虫已有知识进行梳理和归纳,可惜课程只讲如何爬取网页的html代码,并未详细涉及网页中的JS,Cookie,Sssion和Token等更深入的内容。