哔哔两句

作为现代青年,我相信应该没几个没看过小说的吧,嘿嘿~

一般来说咱们书荒的时候怎么办?自然是去起某点排行榜先找到小说名字,然后再找度娘一搜,哎 ,笔趣阁就出来答案了,美滋滋~
但是那多麻烦,咱们用 python 直接全部下载下来慢慢看不就好了~
小孩子才做选择,成年人选择都要…

好了,不啰嗦了,等下大家要骂我了~

准备工作

环境模块

咱们没装软件的装一下软件,没装模块的装一下模块,软件我就不讲了。

模块咱们用到的是这两个模块,需要安装一下。

requests   # 发送请求
re # 正则表达式模块

pip install 模块名 安装即可,不会的可以看我主页置顶文章,有针对完全不会的兄弟专门写的教程,Python/pycharm安装包及视频教程主页左侧有

目标地址

https://read.这里qi大家自己dian一下.com/chapter/3i-t4PVRihdwe0zGvdPFgA2/djLVNZuVg7eaGfXRMrUjdw2/

删除中文字体即可,大家可以自己换一下目标,同站即可。

爬虫流程

爬虫的流程基本都是这几步,我这里不详细讲解了,以前的文章有些讲过。

1. 发送请求
2. 获取数据
3. 解析数据
4. 保存数据

用Python带你看遍全网所有小说

完整代码

import requests     # 发送请求
import re
python学习交流群:660193417###
# 伪装
headers = {
'cookie': '_yep_uuid=b1421b7f-11da-b15f-a3ad-95316478f93c; e1=%7B%22pid%22%3A%22qd_P_read%22%2C%22eid%22%3A%22%22%2C%22l1%22%3A3%7D; e2=%7B%22pid%22%3A%22qd_P_read%22%2C%22eid%22%3A%22%22%2C%22l1%22%3A3%7D; newstatisticUUID=1648708045_1995757040; _csrfToken=mAWbsvESMNwir4NfKBy5fy8RedwvNBabTq3PLx6r; fu=721555856; _gid=GA1.2.1193345906.1648708045; e1=%7B%22pid%22%3A%22qd_p_qidian%22%2C%22eid%22%3A%22qd_A18%22%2C%22l1%22%3A3%7D; e2=; qdrs=0%7C3%7C0%7C0%7C1; showSectionCommentGuide=1; qdgd=1; rcr=1031788647%2C1031920667; bc=1031920667%2C1031788647; pageOps=1; lrbc=1031788647%7C686160165%7C0%2C1031920667%7C695153167%7C1; _ga_FZMMH98S83=GS1.1.1648708044.1.1.1648708759.0; _ga_PFYW0QLV3P=GS1.1.1648708044.1.1.1648708759.0; _ga=GA1.2.777546916.1648708045',
'referer': 'https://book.大家自己改一下,看了准备工作就知道了.com/',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36',
}
url = 'https://book.大家自己改一下,看了准备工作就知道了.com/info/1031920667/#Catalog'
html_data = requests.get(url=url, headers=headers).text
info_list = re.findall('<h2 class="book_name"><a href="(.*?)" target="_blank" data-eid=".*?" data-cid=".*?" alt=".*?" title=".*?">(.*?)</a></h2>', html_data)
for link, title in info_list:
link = 'https:' + link
# print(link, title)
# 1. 发送请求
response = requests.get(url=link, headers=headers)
# 2. 获取数据
link_data = response.text
# print(html_data)
# 3. 解析数据
# 网页标签 <p></p> <a></a> <div></div> <img />
# <div class="read-content j_readContent" id=".*?">(.*?)</div>
text = re.findall('<div class="read-content j_readContent" id=".*?">(.*?)</div>', link_data, re.S)[0]
text = text.replace('<p>', '\n')
text = title + '\n\n' + text
print(text)
# 4. 保存数据
with open('网恋女友竟是九天神凰.txt', mode='a', encoding='utf-8') as f:
f.write(text)

最新文章

  1. LBaaS 实现机制 - 每天5分钟玩转 OpenStack(125)
  2. IIS7错误“Web服务器被配置为不列出此目录的内容”的解决办法
  3. ZeroMQ接口函数之 :zmq_proxy_steerable – 以STOP/RESUME/TERMINATE控制方式开启内置的ZMQ代理
  4. 链地址法实现HashMap
  5. Html/Css(新手入门第二篇)
  6. python中给for循环增加索引
  7. 动态链接库 仅有.dll文件时候的使用方法
  8. 信号之sigpending函数
  9. JSON和JSONP,也许你会豁然开朗,含jQuery用例
  10. linux 中的搜索命令
  11. PMM Client 安装异常报错
  12. c++中各类型数据所占字节数(二)
  13. Android反编译apk并重新打包签名(Mac环境)
  14. 再谈树形dp
  15. 《Practical Vim》第十章:复制和粘贴
  16. guava-retrying 源码解析(等待策略详解)
  17. HDU 1686:Oulipo(KMP模板,子串出现次数)
  18. devel包
  19. 【转载】解决telnet无法连接 Connection refused
  20. docker容器怎么设置开机启动

热门文章

  1. 工作小记:企业微信 嵌H5页面 用户权限获取匹配
  2. Vue生产环境调试的方法
  3. Dubbo 学习笔记
  4. jmeter脚本编写
  5. python3 Softmax函数
  6. 【面试普通人VS高手系列】讲一下wait和notify这个为什么要在synchronized代码块中?
  7. SpringBoot从0到0.7——序言
  8. Docker容器(container)详解 (转载自http://c.biancheng.net/view/3150.html)
  9. 是时候使用 YAML 来做配置或数据文件了
  10. 树形dp基础