您好,登录后才能下订单哦!
这篇文章给大家分享的是有关使用60行python代码写一个简单的笔趣阁爬虫的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
文章目录
系列文章目录
前言
一、网页解析
二、代码填写
1.获取Html及写入方法
2.其余代码
总结
前言
利用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 h2>
bookName = Tag.select("p #info h2")
二、代码填写
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 h2")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)
感谢各位的阅读!关于“使用60行python代码写一个简单的笔趣阁爬虫”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。