python 不同库 解析request 的 response

1、 lxml

pip install lxml

import requests
from lxml import etree

# 发送HTTP请求获取文本内容
url = 'https://example.com'
response = requests.get(url)
html_content = response.text

# 将文本内容解析为Element对象
tree = etree.HTML(html_content)

# 使用XPath选择元素
selected_elements = tree.xpath('//h1')  # 使用实际的XPath表达式

# 打印提取到的元素文本
for element in selected_elements:
    print(element.text)

2、bs4

pip install beautifulsoup4

from bs4 import BeautifulSoup
import requests

url = 'https://example.com'
response = requests.get(url)
html_content = response.text

soup = BeautifulSoup(html_content, 'html.parser')
selected_elements = soup.select('h1')

for element in selected_elements:
    print(element.text)

3、xml.etree.ElementTree

内置库

import xml.etree.ElementTree as ET
import requests

url = 'https://example.com'
response = requests.get(url)
xml_content = response.text

root = ET.fromstring(xml_content)
selected_elements = root.findall('.//element_name')

for element in selected_elements:
    print(element.text)

4、scrapy

pip install scrapy

import scrapy
from scrapy.http import HtmlResponse

# 要转换的字符串内容
html_content = "<html><body><h1>Hello, World!</h1></body></html>"

# 创建一个 HtmlResponse 对象
response = HtmlResponse(url='http://example.com', body=html_content, encoding='utf-8')

# 使用 XPath 选择元素
selected_elements = response.xpath('//h1')

for element in selected_elements:
    print(element.xpath('string()').get())

四种方法得到的对象 都可以说使用.xpath 去匹配对应的html元素。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Request对象是一个HTTP请求对象,它包含了HTTP请求的所有信息,包括请求方法、请求头、请求体等。在Python中,可以使用标准中的urllib或第三方requests来发送HTTP请求并获取Response对象,其中Request对象即为HTTP请求对象。 下面是一个使用requests发送HTTP请求的例子: ```python import requests url = 'https://www.example.com' headers = {'User-Agent': 'Mozilla/5.0'} data = {'param1': 'value1', 'param2': 'value2'} response = requests.post(url, headers=headers, data=data) request = response.request ``` 在上面的代码中,我们使用requests向'https://www.example.com'发送了一个POST请求,并传递了请求头和请求体。发送请求后,我们可以通过response.request访问到Request对象,从而获取请求的各种信息。 Request对象的常用属性和方法包括: - method:请求方法,如GET、POST等。 - url:请求的完整URL。 - headers:请求头,以字典的形式存储。 - cookies:请求携带的cookie信息,以字典的形式存储。 - params:请求参数,以字典的形式存储。 - data:请求体,以字典的形式存储。 - json():返回请求体中的json数据。 - text:返回请求体的文本内容。 - content:返回请求体的二进制内容。 例如,我们可以通过以下代码解析Request对象中的请求方法、请求头和请求体: ```python print(request.method) print(request.headers) print(request.data) ``` 输出结果为: ``` POST {'User-Agent': 'Mozilla/5.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Length': '23', 'Content-Type': 'application/x-www-form-urlencoded'} b'param1=value1&param2=value2' ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值