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


本文摘自php中文网,作者coldplay.xixi,侵删。

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

文章目录

  • 系列文章目录
  • 前言
  • 一、网页解析
  • 二、代码填写
    • 1.获取Html及写入方法
    • 2.其余代码
  • 总结

前言

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


一、网页解析

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

1

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

然后遍历列表

1

2

3

for url in urls:

    href = "http://www.biquge001.com/" + url['href']  # 字符串的拼接 拼接成正确的网址

    pageName = url.text  # 每章的章名

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

1

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

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

在这里插入图片描述

1

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

二、代码填写

1.获取Html及写入方法

1

2

3

4

5

6

7

8

9

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.其余代码

代码如下(示例):

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

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行代码写一个简单的笔趣阁爬虫的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

Python中登录模块的详细介绍

Python self什么意思

Python3库numpy数组属性的查看方法

Python中lambda函数的用法介绍(附示例)

Python中的输入与输出是什么?(实例详解)

Python怎么转化为字符串

Python爬虫之anaconda环境下创建scrapy爬虫框架

Python dict怎么实现的

ipad上可以运行Python

Python必背内容有哪些

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...