当前位置: 首页 > news >正文

Python爬虫下载小说

Tip

  • 这是一个非常简单的小说网站,读者可以拿来练习爬虫,练习xpath,文章内不让带网址,私信我获取网址。代码里有详细注释。

代码

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("下载完成")

其它爬虫文章

记一次用Python爬取代理IP并使用(尝试用代理IP制造直播房间访问量)
记一次用Python统计全国女性Size
Python爬虫——爬取阳光高考专业数据并对所有专业进行数据分析

相关文章:

  • 人际交往中的勇气挑战与价值实现
  • 高效的工作学习方法
  • Vue2源码梳理:render函数的实现
  • iTop-4412 裸机程序(二十二)- RTC时钟
  • c++恶魔轮盘制造第1期输赢
  • 第62讲商品搜索动态实现以及性能优化
  • CTFshow web(php命令执行 55-59)
  • 容器高级知识: 适配器模式与 Sidecar 模式的区别
  • Python 读取pdf文件
  • 如何流畅进入Github
  • Spring + Tomcat项目中nacos配置中文乱码问题解决
  • HarmonyOS 鸿蒙 ArkTS ArkUI 页面之间切换转换动画设置
  • 微服务OAuth 2.1认证授权可行性方案(Spring Security 6)
  • [嵌入式系统-14]:常见实时嵌入式操作系统比较:RT-Thread、uC/OS-II和FreeRTOS、Linux
  • uniapp的配置和使用
  • flask+python儿童福利院管理系统pycharm毕业设计项目
  • C++ 关键字小结
  • 使用 Elasticsearch 和 OpenAI 构建生成式 AI 应用程序
  • Java+SpringBoot构建智能捐赠管理平台
  • re:从0开始的CSS之旅 13. 文档流
  • 聚焦各领域顶尖工匠,《上海工匠》第十季于五一播出
  • “五一”假期预计全社会跨区域人员流动量超14亿人次
  • 运动健康|不同能力跑者,跑步前后营养补给差别这么大?
  • 出行注意防晒补水,上海五一假期以多云天气为主最高33℃
  • 路边“僵尸车”被人以1450元卖了,嫌疑人被刑拘
  • 在循环往复的拍摄中,重新发现世界