有时候在手机APP软件上看的一部小说到某一章看不了了,是vip章节,我在电脑浏览器上搜了下发现网页上是有全本的,都能看。但是网页广告多,啥都有,一不小心就点进去了,很是麻烦。我想,爬下来吧。。。
很简单的小爬虫,网站也没有啥反爬,加个头就好了。主要记录的是怎么能在手机上看这个坑。
我刚开始是把每一章作为一个txt文件存储的
但是发现这样虽然看起来很清楚,但是传到手机上之后,用看书软件打开,只能一章一章的读。也就是第一章读完了就算结束了,不会跳转第二章。后面我就把它们全部放到一个TXT中。
但是打开后发现看书软件识别不了标题啊,虽然是可以一直看完,但是我没法选直接看第几章
后来又试了很多办法,这里就不一一介绍了,直接说解决的办法。
我是在存标题的时候,在标题前面加了 ‘第几章’,后面加了回车换行符。好像读书软件可以识别这种格式的作为标题。
这样一来,用读书软件打开就可以看了。我用的掌阅作为看书软件。完整代码在这里:
import requests
from bs4 import BeautifulSoup
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36',
}
url='https://www.xianqihaotianmi.com/book/8979.html'
rq=requests.get(url,headers=headers)
rq.encoding='utf8'
content=rq.text
soup=BeautifulSoup(content,'lxml')
con_list=soup.find('ul',class_='list-group list-charts').findAll('li')
# print(con_list)
num=0
for x in con_list:
num+=1
link_1=x.find('a')['href']
link='https://www.xianqihaotianmi.com'+link_1
print(link)
rq1=requests.get(link,headers=headers)
rq1.encoding='utf8'
data=rq1.text
soup=BeautifulSoup(data,'lxml')
# print(soup)
title1=soup.find('li',class_='active').get_text()+'\n'
title='第{}章'.format(str(num))+title1
# print(title)
count=soup.find('div',class_='panel-body content-body content-ext').get_text()
# print(count)
with open("傅少的哑巴新妻.txt", "a+", encoding="utf-8") as f:
f.write(title+count+ "\n")
print(title,'已下载')
接下来老规矩,看下效果:
目录清楚的识别了出来,我们直接点第九章看:
可以看到也是直接能看的,到这里就可以看出来,效果就跟直接从读书软件的书城下载下来的一般无二了。