requests爬取的网页内容清理成etree.fromstring()函数的期望格式
时间: 2024-10-10 17:15:11 浏览: 36
基于Python的豆瓣图书数据的爬取与分析-张娇.pdf
当你使用`requests`库从URL抓取HTML内容后,通常有两种方式将其转换为`lxml`库可以解析的文档树:
1. 使用`lxml.html.fromstring()`[^1]:
```python
resp = requests.get(url, headers=headers)
text = resp.content.decode('utf8')
doc = lxml.html.fromstring(text)
```
这种方法直接从原始字符串`text`创建了一个HTML文档树,你可以通过这个树结构来遍历和提取信息。
2. 先保存为`response.text`(文本格式)再用`etree.HTML()`:
```python
from lxml import etree
resp = requests.get(url, headers=headers)
text = resp.text
html = etree.HTML(text)
```
这里先将响应体的文本存储在`text`变量中,然后再创建HTML文档树。这两种方法的效果是一样的,只是处理步骤略有不同。
`fromstring()`方法更简洁,因为它一步到位地处理了编码问题并构建了树。而如果先保存为文本再转换,可能是因为你想要保持原始文本格式便于查看或后续操作。
要清理的内容通常是去除HTML标签的干扰,以便于提取纯文本内容或特定的元素。`lxml`提供了强大的XPath和CSS选择器支持,可以方便地定位和提取所需的数据。
阅读全文