社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

白胡子是这个世界上最猛的男人 • 4 年前 • 297 次点击  

系列文章目录

python爬虫实战——爬取淘宝商品信息并导入EXCEL表格(超详细)
python多线程爬取壁纸 妈妈再也不担心我没壁纸了! .

python爬虫爬取虎牙数据(简单利用requests库以及Beautifulsoup) .

python爬虫之爬取壁纸(新手入门级) .
python爬虫实战——爬取猫眼电影TOP100并导入excel表



前言

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


一、网页解析

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

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

然后遍历列表

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

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

  substance = Tag.select("div #content")  # 文章的内容
  • 1
  • 1

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

在这里插入图片描述

bookName = Tag.select("div #info h1")
  • 1
  • 1

二、代码填写

1.获取Html及写入方法

def getHtmlText(url):
    r = requests.get(url, headers=headers)
    r.encoding = r.apparent_encoding  # 编码转换
    r.raise_for_status()
    return r.text

def writeIntoTxt(filename, content):
    with open(filename, "w", encoding="utf-8") as


    
 f:
        f.write(content)
        f.close()
        print(filename + "已完成")

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

2.其余代码

代码如下(示例):

url = "http://www.biquge001.com/Book/2/2486/"
substanceStr = ""
bookName1 = ""
html = getHtmlText(url)
# 判断是否存在这个文件
Tag = BeautifulSoup(getHtmlText(url), "html.parser")
urls = Tag.select("div #list dl dd a")
bookName = Tag.select("div #info h1")
for i in bookName:
    bookName1 = i.text
if 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("div #content")  # 文章的内容
    for i in substance:
        substanceStr = i.text
    writeIntoTxt(fileName, substanceStr)
    time.sleep(1) 

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

总结

简单利用了BeautfulSoup的select方法对笔趣阁的网页进行了爬取
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/106086
 
297 次点击