用python写了一个简单的笔趣阁爬虫

K
K
擅长邻域:未填写

分类: Java 标签: python 笔趣阁 爬虫

2021-01-14 21:49:45 1418浏览

前言
利用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")
然后遍历列表
for url in urls:
href = "http://www.biquge001.com/" + url['href'] # 字符串得拼接 拼接成正确得网址
pageName = url.text # 每章得章名
然后每章小说得内容都存放在<div id=“content” 里 同理得

 substance = Tag.select("div #content")  # 文章得内容
最后同理在首页获取小说得名称
<"div id = info h1>

bookName = Tag.select("div #info h1")
二、代码填写
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 + "已完成")
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)
行,今天就给大家分享到这里吧,您的一份支持就是我最大的动力,最后打个小广告,我们程序员在学习和工作中或多或少会遇到一些比较棘手的问题,也就所谓的一时半会解决不了的bug,可以来杰凡IT问答平台上提问,平台上大佬很多可以快速给你一对一解决问题,有需要的朋友可以去关注下,平台网址: https://www.jf3q.com

好博客就要一起分享哦!分享海报

此处可发布评论

评论(0展开评论

暂无评论,快来写一下吧

展开评论

您可能感兴趣的博客

客服QQ 1913284695