使用lxml的etree爬取http://www.kanunu8.com/book3/6879/每一章节的内容
时间: 2023-09-08 12:09:12 浏览: 165
爬虫代码.zip-爬虫代码.zip-爬虫代码.zip-爬虫代码.zip-爬虫代码.zip
以下是一个示例代码,演示如何使用lxml的etree爬取 http://www.kanunu8.com/book3/6879/ 每一章节的内容:
```python
import requests
from lxml import etree
# 发送请求并获取HTML
url = 'http://www.kanunu8.com/book3/6879/'
response = requests.get(url)
html_string = response.content.decode('gbk')
# 将HTML字符串转换为etree对象
root = etree.HTML(html_string)
# 获取章节列表
chapter_list = root.xpath('//div[@class="list"]/ul/li/a/@href')
# 循环获取每个章节的内容
for chapter in chapter_list:
chapter_url = url + chapter
response = requests.get(chapter_url)
chapter_html_string = response.content.decode('gbk')
chapter_root = etree.HTML(chapter_html_string)
title = chapter_root.xpath('//h1/text()')[0]
content_list = chapter_root.xpath('//div[@class="main"]/text()')
content = ''.join(content_list)
print(title)
print(content)
```
在这个示例中,我们首先使用`requests`库发送请求并获取HTML。然后,我们将HTML字符串转换为etree对象,并使用XPath表达式获取章节列表。接着,我们循环遍历每个章节的链接,发送请求并获取HTML,然后将HTML字符串转换为etree对象。最后,我们使用XPath表达式获取章节标题和内容,并输出结果。需要注意的是,由于该网站使用gbk编码,我们需要在获取HTML后使用`.decode('gbk')`对其进行解码。
阅读全文