欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

Python爬虫下载小说

最编程 2024-02-15 12:55:52
...
import requests as r from lxml import etree import re ## 根网址 base_url = "xxx" ## 小说id,即小说目录地址后的那一串数字 content_id = "xxx" ## 下载路径及文件名 myFile= "./小说名.txt" ## 获取html items = r.get(base_url + "/" + content_id).text html_body = etree.HTML(items).xpath("/html/body") ## 获取小说目录 ## 这里采用了xpath的方式获取到类为listmain的div,并获取到其内部的dl,然后获取第二个dt之后的所有dd标签,获取每个dd标签下的a标签的href即为小说每一章的地址。 href = html_main.xpath("//div[@class='listmain']/dl/dt[2]/following-sibling::dd//a/@href") ## 打开文件并追加写入每一章的标题和内容,记得在最后处理一下\n\t和一些其它编码符。(可以适当添加延迟或者参考笔者之前的代理ip博客使用代理ip,否则可能会出现访问超时) with open(myFile,"a", encoding="utf-8") as f: for item in href: res_content = "" # 拼接url url = base_url+item response = r.get(url).text res_html = etree.HTML(response) title = res_html.xpath("//div[@class='content']/h1/text()")[0] print("正在下载:"+title) res_content+=title res_content+='\n' contents = res_html.xpath("//div[@id='content']/text()") for content in contents: trans_content = re.sub(r'\xa0', '', content) res_content += content.replace("\xa0","").replace('\r','\t') res_content+='\n' f.write(res_content) print("下载完成")