• 技术文章 >后端开发 >Python教程

    介绍python60行代码写一个简单的笔趣阁爬虫

    coldplay.xixicoldplay.xixi2021-01-13 09:51:07转载632

    推荐(免费):Python视频教程

    文章目录


    前言

    利用python写一个简单的笔趣阁爬虫,根据输入的小说网址爬取整个小说并保存到txt文件。爬虫用到了BeautifulSoup库的select方法
    结果如图所示:
    在这里插入图片描述
    本文只用于学习爬虫


    一、网页解析

    这里以斗罗大陆小说为例 网址:
    http://www.biquge001.com/Book/2/2486/
    在这里插入图片描述
    可以发现每章的网页地址和章节名都放在了 <"p id=list dl dd a>中的a标签中,所以利用BeautfulSoup中的select方法可以得到网址和章节名

    Tag = BeautifulSoup(getHtmlText(url), "html.parser") #这里的getHtmlText是自己写的获取html的方法urls = Tag.select("p #list dl dd a")

    然后遍历列表

    for url in urls:
        href = "http://www.biquge001.com/" + url['href']  # 字符串的拼接 拼接成正确的网址
        pageName = url.text  # 每章的章名

    然后每章小说的内容都存放在<p id=“content” 里 同理得
    在这里插入图片描述

      substance = Tag.select("p #content")  # 文章的内容

    最后同理在首页获取小说的名称
    <"p id = info h1>

    在这里插入图片描述

    bookName = Tag.select("p #info h1")

    二、代码填写

    1.获取Html及写入方法

    def getHtmlText(url):
        r = requests.get(url, headers=headers)
        r.encoding = r.apparent_encoding  # 编码转换
        r.raise_for_status()
        return r.textdef writeIntoTxt(filename, content):
        with open(filename, "w", encoding="utf-8") as f:
            f.write(content)
            f.close()
            print(filename + "已完成")

    2.其余代码

    代码如下(示例):

    url = "http://www.biquge001.com/Book/2/2486/"substanceStr = ""bookName1 = ""html = getHtmlText(url)# 判断是否存在这个文件Tag = BeautifulSoup(getHtmlText(url), "html.parser")urls = Tag.select("p #list dl dd a")bookName = Tag.select("p #info h1")for i in bookName:
        bookName1 = i.textif not os.path.exists(bookName1):
        os.mkdir(bookName1)
        print(bookName1 + "创建完成")else:
        print("文件已创建")for url in urls:
        href = "http://www.biquge001.com/" + url['href']  # 字符串的拼接 拼接成正确的网址
        pageName = url.text  # 每章的章名
        path = bookName1 + "\\"  # 路径
        fileName = path + url.text + ".txt"  # 文件名 = 路径 + 章节名 + ".txt"
        Tag = BeautifulSoup(getHtmlText(href), "html.parser")  # 解析每张的网页
        substance = Tag.select("p #content")  # 文章的内容
        for i in substance:
            substanceStr = i.text
        writeIntoTxt(fileName, substanceStr)
        time.sleep(1)


    总结

    简单利用了BeautfulSoup的select方法对笔趣阁的网页进行了爬取

    更多相关学习敬请关注Python教程栏目!

    以上就是介绍python60行代码写一个简单的笔趣阁爬虫的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:CSDN,如有侵犯,请联系admin@php.cn删除
    专题推荐:python60 笔趣阁爬虫
    上一篇:讲解 python2与3的区别 下一篇:python 讲解进制转换 int、bin、oct、hex
    大前端线上培训班

    相关文章推荐

    • Python介绍嵌套 JSON 秒变 Dataframe!• 传授 每30秒学会一个Python小技巧• 总结2020年最强Python库• python图片转字符画代码是什么• Python数据分析实战之 概述数据分析• 看看 Python Django开发 异常及解决办法• 描述Python类属性

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网