起因
之前我一直在追一部作品「助けた美少女JKが可哀そうすぎて同棲を始めるしかなかった」
但是由于这部作品描写内容过于真实,并且有很多残忍的描写,但是由于作者的疏忽,并没有加上相关Tag
导致这部作品的评论区两极分化严重,支持的非常支持,喷作者的说的话也很过分
作者于作品完结后一个月的2020年9月28日这一天,更新了一章标题为《この作品について》的文章
大概意思是说,这篇文章本来是要参赛的,并且已经过了中期,但是由于后半段内容的原因,作者自己决定放弃参加
この作品は第2回ファミ通文庫大賞へ参加しており、中間選考を突破しておりました。最終審査の結果が発表される間際でございますが、この度、第2回ファミ通文庫大賞の参加を辞退することに決めました。
并且这个作品将在カクヨム上只保留到10月31日,之后将完全删除
また、辞退が確定した場合、本作品の公開を10月いっぱいまでとし、10月31日をもちまして、本作のすべてのデータを完全消去することを決断いたしました。バックアップは取りません。
我个人是非常喜欢这部作品的,甚至之前已经找作者授权进行翻译转载了(预计是本博客上单独一篇文章介绍这部作品,但是截止到今天(2020-9-29)我还没写完,暂时就先不放链接了(隐藏状态尚未公开))。
原作者要删除的话,是非常可惜的,但是我觉得原作者也会有自己的原因吧。。这里不做过多讨论
但是在我将来想重新阅读的时候,没了可就不好了
因此有了这篇文章
代码部分
这次的爬虫依然是使用python去编写
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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
| import urllib.request from bs4 import BeautifulSoup
url = "https://kakuyomu.jp/works/1177354054887666399" f = urllib.request.urlopen(url) html = f.read().decode('utf-8')
f = open("SecondPage.html",'r+',encoding="utf-8") f.write(html)
soup = BeautifulSoup(html, "html.parser")
linkPart = soup.findAll(name='a',attrs={"class","widget-toc-episode-episodeTitle"})
linkList = [] for item in linkPart: linkList.append("https://kakuyomu.jp"+item.get('href'))
linkList
urlChild = linkList[0] childSoup = BeautifulSoup(urllib.request.urlopen(urlChild).read().decode('utf-8'),"html.parser") MainBody = childSoup.find('div',attrs={'class','widget-episodeBody js-episode-body'})
br = MainBody.findAll('p')[1].get_text()
title = soup.find('h1',id="workTitle").a.string + '.txt' print('写入文件') txtFile = open(title,'a', encoding='utf-8') count = 0 loadLine = 1 totalNumber = str(len(linkList)) for childLinkItem in linkList: print("正在写入链接({}/{})".format(str(loadLine),totalNumber)+childLinkItem) loadLine += 1 childSoup = BeautifulSoup(urllib.request.urlopen(childLinkItem).read().decode('utf-8'),"html.parser") ZhangTitle = childSoup.find('p',attrs={"class","chapterTitle level1 js-vertical-composition-item"}) ZhangTitle = ZhangTitle if(None == ZhangTitle) else ZhangTitle.span.string if(None != ZhangTitle): print('正在写入章:'+ZhangTitle) txtFile.write('\n'+ ZhangTitle+'\n') JieTitle = childSoup.find('p',attrs={"class","chapterTitle level2 js-vertical-composition-item"}) JieTitle = JieTitle if(None == JieTitle) else JieTitle.span.string if(None != JieTitle): print('正在写入大节:'+JieTitle) txtFile.write('\n'+ JieTitle+'\n') count = 0 else: count += 1 charpTitle = "\n\n第"+ str(count) + "节 "+ childSoup.find('p',attrs={"class","widget-episodeTitle js-vertical-composition-item"}).string txtFile.write('\n\n\n'+ charpTitle) MainBody = childSoup.find('div',attrs={'class','widget-episodeBody js-episode-body'}) PTags = MainBody.findAll('p') for childPTag in PTags: text = childPTag.get_text() txtFile.write('\n'+ text if(br != text) else '\n') print("链接"+childLinkItem+"写入完成") print("小说《"+soup.find('h1',id="workTitle").a.string+"》已全部写入完成")
|
代码中url
可以用待爬取小说的介绍页面进行替换
这里以这部作品链接为例子
1
| url = "https://kakuyomu.jp/works/1177354054894884567"
|
声明
我尊重かんなづき
的决定,因此不会提供任何的爬取内容
爬取的文件我也仅仅会自用,不会进行任何互联网传播。
关于我的那篇翻译介绍文章,暂时决定不放出,待和原作者商讨以后再做决定。
这里留下官网链接:https://kakuyomu.jp/works/1177354054894884567
如果你感兴趣的话,在原作者没有删除之前去支持一下吧。