Python社区  »  Python

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

白胡子是这个世界上最猛的男人 • 1 周前 • 19 次点击  

系列文章目录

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
 
19 次点击  
分享到微博