笔趣阁小说站的爬虫小程序

从笔趣阁(www.biquge.com.tw)爬取整本小说的内容,写入txt文件。

再也不用到处找地方下载了,省的遭遇各种不靠谱。

代码如下:

import urllib.request
from bs4 import BeautifulSoup
import urllib.parse

print('\n笔趣阁小说爬虫小程序\n\n')
o_url='http://www.biquge.com.tw'
novelname=input('本程序不支持模糊查询,请输入正确的小说名称:\n')
if novelname=='':
	print('未输入小说名称,默认爬取中...')
	novelname='余罪'
b_novelname=novelname.encode('gbk')
url_novelname=urllib.parse.quote(b_novelname)
url_pre='http://www.biquge.com.tw/modules/article/soshu.php?searchkey=+'
url=url_pre+url_novelname
#print(url)
page=urllib.request.urlopen(url).read().decode('GB18030')
soup=BeautifulSoup(page,'lxml')
n=0
bookname=soup.select('#info > h1')
if bookname==[]:
	print('未找到图书。')
else:
	print('找到图书:%s。'% bookname[0].text)

	print('爬取中...')
	filename=str(bookname[0].text)+'.txt'
	fo=open(filename,'w',encoding='utf-8')
	print('文件将保存至',filename)
	while True:
		n+=1
		link=soup.select('#list > dl > dd:nth-of-type(%s)'% n)
		if len(link)==1:
			for i in link[0]:
				c_url=o_url+i['href']
				c_page=urllib.request.urlopen(c_url).read().decode('GB18030')
				c_soup=BeautifulSoup(c_page,'lxml')
				c_text=c_soup.select('#content')
				text_0=c_text[0]
				fo.write('\n\n')
				fo.write(i.text)
				fo.write('\n')
				fo.write(text_0.text)
				print('正在爬取章节:',i.text)
		else:
			break
	print('%s 爬取完毕!'% bookname[0].text)
	fo.close()

 

你可能感兴趣的:(小说下载,python)