1、需求说明
获取一部小说的标题+内容,以txt文档形式保存
2、项目说明
3、代码
# 怎么发送请求
# pip install requests
import requests
# pip install lxml->从标签里提起文字
#from lxml import etree
from lxml import html
etree=html.etree
# 发送给谁
url='https://www.z1xs.com/book/13972/9382549.html'
i=0;
while url != 'https://www.z1xs.com/book/13972/':
i=i+1
print(i)
#伪装自己
headers={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36'
}
# 发送请求
resp=requests.get(url,headers=headers)
#查看编码格式
#print("encoding="+resp.encoding)
#设置编号 设置后没生效
#resp.encoding = "UTF-8"
# 响应信息
#print(resp.text)
# 转化为文本
e=html.etree.HTML(resp.text)
#转化为二进制
#contents=html.etree.HTML(resp.content)
# 使用XPATH及属性名称定位元素 元素属性类型:@id 、@name、@type、@class、@tittle
#标题 设置编码格式-encode('ISO-8859-1').decode('gbk')
#第一章节
title=e.xpath('//h1/text()')[0].encode('ISO-8859-1').decode('gbk')
#print('title==='+title)
#内容 string(//div[@id="content"]->转换string 类型
infos=e.xpath('string(//div[@id="content"])').encode('ISO-8859-1').decode('gbk')
#print('infos==='+infos)
#下一章节
url='https://www.z1xs.com'+e.xpath("string(//div[@class='bottem1']/a[4]/@href)")
#print(url)
# 保存
with open('盛妆山河.txt','w',encoding='gbk') as f:
f.write(title+'\n\n'+infos+'\n\n')