前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >通过Python爬虫获取【小说网站】数据,保姆级教学

通过Python爬虫获取【小说网站】数据,保姆级教学

作者头像
红目香薰
发布2023-01-13 09:56:53
1.3K0
发布2023-01-13 09:56:53
举报
文章被收录于专栏:CSDNToQQCodeCSDNToQQCode

通过Python爬虫获取【小说网站】数据,保姆级教学

目录

通过Python爬虫获取【小说网站】数据,保姆级教学

前言

示例环境

爬取目标

爬取代码

核心技术点:

爬取结果

前言

        所有的前置环境以及需要学习的基础我都放置在【Python基础(适合初学-完整教程-学习时间一周左右-节约您的时间)】中,学完基础咱们再配置一下Python爬虫的基础环境【看完这个,还不会【Python爬虫环境】,请你吃瓜】,搞定了基础和环境,我们就可以相对的随心所欲的获取想要的数据了,所有的代码都是我一点点写的,都细心的测试过,如果某个博客爬取的内容失效,私聊我即可,留言太多了,很难看得到,本系列的文章意在于帮助大家节约工作时间,希望能给大家带来一定的价值。

示例环境

系统环境:win11 开发工具:PyCharm Community Edition 2022.3.1 Python版本:Python 3.9.6 资源地址:链接:https://pan.baidu.com/s/1UZA8AAbygpP7Dv0dYFTFFA 提取码:7m3e MySQL:5.7,url=【rm-bp1zq3879r28p726lco.mysql.rds.aliyuncs.com】,user=【qwe8403000】,pwd=【Qwe8403000】,库比较多,自己建好自己的,别跟别人冲突。

爬取目标

小说,小说网-纵横中文网|最热门的免费小说网 https://book.zongheng.com/

输入对应的网址即可下载:

爬取代码

核心技术点:

1、双重集合单循环遍历

代码语言:javascript
复制
    for item1, item2 in zip(href, text):
        a_href_list = ["", ""]
        a_href_list[0] = item1
        a_href_list[1] = item2
        a_href_arr.append(a_href_list)

2、parsel的css选择器语法

注意点:这里的注意点依然是时间的随机上,如果你有IP代理的话就无所谓了。

代码语言:javascript
复制
import requests
import parsel
import uuid
import time
import random
import os

baseUrl = "http://www.zongheng.com/"

bookId = "https://book.zongheng.com/book/1228049.html"

bookIdDir = bookId.replace("book/", "showchapter/")

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'
}

listChild = []
listDate = []
mTitle = []
# 文章链接与标题独立列表
a_href_list = ["", ""]
# 存放文章链接与标题数组列表
a_href_arr = []


def GetUrl(url):
    html = requests.get(url, headers=headers)
    sel = parsel.Selector(html.text)
    # 获取主Title
    mTitle.append(sel.css(".book-meta h1::text").getall()[0])
    os.mkdir("./" + mTitle[0] + "/", mode=0o777)
    print(mTitle)
    # 获取文章url列表
    href = sel.css(".volume-list ul a::attr(href)").getall()
    # 获取标题
    text = sel.css(".volume-list ul a::text").getall()
    for item1, item2 in zip(href, text):
        a_href_list = ["", ""]
        a_href_list[0] = item1
        a_href_list[1] = item2
        a_href_arr.append(a_href_list)


def GetTxt(url, title):
    print(url)
    print(mTitle)
    print(title)
    html = requests.get(url, headers=headers)
    sel = parsel.Selector(html.text)
    # 文章
    infoDate = []
    info = sel.css(".content p::text").getall()
    for item in info:
        infoDate.append(item+"\r\n")
    title = str(title).replace(" ", "_")
    title = str.format("{0}/{1}.txt", mTitle[0], title)
    with open(title, "w+", encoding="utf-8") as f:
        f.write("".join(infoDate))
        f.close()
    print(title, "保存完毕")


GetUrl(bookIdDir)

for item in a_href_arr:
    GetTxt(item[0], item[1])
    time.sleep(random.uniform(0.5, 1.5))

爬取结果

所有的章节一章不少。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-01-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 通过Python爬虫获取【小说网站】数据,保姆级教学
  • 前言
  • 示例环境
  • 爬取目标
  • 爬取代码
    • 核心技术点:
    • 爬取结果
    相关产品与服务
    云数据库 MySQL
    腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档