一·requests核心内容:
requests 作为一个专门为「人类」编写的 HTTP 请求库,其易用性很强,因此在推出之后就迅速成为 Python 中首选的 HTTP 请求库。requests 库的最大特点是提供了简单易用的 API,让编程人员可以轻松地提高效率。由于 requests 不是 Python 的标准库,因此在使用之前需要进行安装
pip install requests
(1)通过 requests 可以完成各种类型的 HTTP 请求,包括 HTTP、HTTPS、HTTP1.0、HTTP1.1 及各种请求方法。requests 库支持的 HTTP 方法。
二 ·requests支持的方法
import requests
requests.get("http://httpbin.org/get")
requests.post("http://httpbin.org/post")
requests.put("http://httpbin.org/put")
requests.delete("http://httpbin.org/delete")
requests.head("http://httpbin.org/get")
requests.options("http://httpbin.org/get")
■ get——发送一个 GET 请求,用于请求页面信息。
■ options——发送一个 OPTIONS 请求,用于检查服务器端相关信息。
■ head——发送一个 HEAD 请求,类似于 GET 请求,但只请求页面的响应头信息。
■ post——发送一个 POST 请求,通过 body 向指定资源提交用户数据。
■ put——发送一个 PUT 请求,向指定资源上传最新内容。
■ patch——发送一个 PATCH 请求,同 PUT 类似,可以用于部分内容更新。
■ delete——发送一个 DELETE 请求,向指定资源发送一个删除请求。
可以看到,requests 使用与 HTTP 请求方法同名的 API 来提供相应的 HTTP 请求服务,从而降低了编程人员的学习和记忆成本。另外,这些 API 方法都调用同一个基础方法,因此在调用参数的使用上也基本保持一致。
三·案例--
import requests
from lxml import etree
# 百度首页
res = requests.get("https://www.baidu.com/", headers={
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36"
})
selector = etree.HTML(res.text)
items = selector.xpath('//ul[@class="s-hotsearch-content"]/li[contains(@class,"hotsearch-item")]')
print("items:", items)
for item in items:
href = item.xpath('./a/@href')[0]
title = item.xpath('.//span[@class="title-content-title"]/text()')[0]
print(title, href)