书友们肯定都知道,python采集数据全本保存~

前言

嗨喽!大家好呀,这里是魔王~**

本次所用到知识点:

  1. 基本流程
  2. 全本小说采集
  3. requests模块的使用
  4. 解析网页结构数据的方式

开发环境:

写代码之前我们的环境还是需要配置一下的哦~

  • python3.8 解释器版本
  • pycharm 代码编辑器
  • requests 第三方模块

在这里插入图片描述

基本流程:

  1. 发送请求 (访问网站)
  2. 获取数据 (网页源代码获取下来)
  3. 解析数据 (提取 想要一部分内容)
  4. 保存数据

更多解答\源码\知识可看左侧主页

代码

# 安装模块:
# 1. win + R 在窗口里面输入cmd 然后回车
# 2. 输入安装命令: pip install 模块名
import requests     # 第三方模块 额外安装: 发送请求
import re           # 正则

# 伪装
headers = {
    
    
    # 身份信息
    'cookie': '_yep_uuid=977f2e62-0e7e-d7eb-a296-cd83b4a0e782; 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; e1=%7B%22pid%22%3A%22qd_p_qidian%22%2C%22eid%22%3A%22qd_A18%22%2C%22l1%22%3A3%7D; qdrs=0%7C3%7C0%7C0%7C1; showSectionCommentGuide=1; qdgd=1; _gid=GA1.2.261721147.1650455291; e2=%7B%22pid%22%3A%22qd_p_qidian%22%2C%22eid%22%3A%22qd_A18%22%2C%22l1%22%3A3%7D; lrbc=1029046794%7C658759613%7C0%2C1931432%7C32605352%7C1%2C1031920667%7C695153167%7C1; rcr=1029046794%2C1931432%2C1031788647%2C1031920667; bc=1029046794; _ga_FZMMH9',
    # 防盗链
    'referer': 'https://book.qidian.com/',
    # 浏览器基本信息
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36'
}
url = 'https://book.qidian.com/info/1029046794/#Catalog'
list_html = requests.get(url, headers=headers).text
info_list = re.findall('<h2 class="book_name"><a href="(.*?)".*?">(.*?)</a></h2>', list_html)
print(info_list)
for link, title in info_list:
    # 访问的链接
    link = 'https:' + link
    # url = 'https://read.qidian.com/chapter/dc-iNwizKg2RTIpqx7GUJA2/hYE80qdXtaW2uJcMpdsVgA2/'
    # 1. 发送请求 (访问网站)
    response = requests.get(link, headers=headers)
    # 请求成功: <Response [200]>
    # 2. 获取数据 (网页源代码获取下来)
    html_data = response.text
    # print(html_data)
    # 3. 解析数据 (提取 想要一部分内容)
    # <div class="read-content j_readContent" id="j_658759613">
    # 文本内容
    # </div>
    # <div class="read-content j_readContent" id=".*?">(.*?)</div>
    # 第一个参数: 是我们要去匹配的规则
    #   (.*?): 匹配任意字符 换行除外
    # 第二个参数: 是我们要在哪里匹配
    # 第三个参数: re.S(匹配换行)
    # 以列表形式进行返回
    text = re.findall('<div class="read-content j_readContent" id=".*?">(.*?)</div>', html_data, re.S)[0]
    # 小说文本内容处理
    # \n: win操作系统当中 \n 代表换行
    text = title + '\n\n' + text.replace('<p>', '\n')
    print(text)
    # 4. 保存数据
    with open('余下的,只有噪音.txt', mode='a', encoding='utf-8') as f:
        f.write(text)

尾语

好了,我的这篇文章写到这里就结束啦!

有更多建议或问题可以评论区或私信我哦!一起加油努力叭(ง •_•)ง

喜欢就关注一下博主,或点赞收藏评论一下我的文章叭!!!

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/python56123/article/details/124430295