首先献上我代码
import requests
from lxml import etree
import os
def get_html(url):
response = requests.get(url)#获取html源码
response.encoding = "utf-8"#转格式utf-8
#print(response.text)
return response.text
#这个给函数获取url链接并返回源码
def parse_page_detail(html):
# 使用xpth爬取网页
etree_html = etree.HTML(html)#初始化xpath
linked = etree_html.xpath('/html/body/div[3]/div[2]/div[2]/div/ul/li/a/@href')#里面的地址自己用xpath语法搞这个爬第一个主网页的每个章节的链接
titles = etree_html.xpath('/html/body/div[3]/div[2]/div[2]/div/ul/li/a/text()')
#里面的地址自己用xpath语法搞这个爬第一个主网页的每个章节的标题
# 将数据压缩
data = zip(linked, titles)#合成一个元组一个大佬教我的
# 构建字典
with open("C:\\Users\\lyslyslys\\Desktop\\1.txt", 'w') as f:#存储目录
for it in data:
print("正在下载" + it[1])#输出下载的哪个
litie_html = get_html(it[0])#调用get_html传进去每个章节的url返回源码
now_txt = page_txt(litie_html)#调用获取章节文章函数返回列表
f.write(it[1]+"\n")#先输出一行题目
for txt in now_txt:
f.writelines(txt + '\n')#输出每个章节
def page_txt(html):
etree_html = etree.HTML(html)
now = etree_html.xpath('//*[@id="readerFt"]/div/div[5]/p/text()')#里面的地址自己用xpath语法搞这个每个章节的文章
return now#返回出去
def main():
now_html = get_html("http://book.zongheng.com/showchapter/997065.html")
parse_page_detail(now_html)
if __name__ == "__main__":
main()
截图看成品