requets请求,pyquery解析,os创建小说文件夹,re解析子url。
电脑配置:
需要安装requests、pyquery库
需要F:盘,没有的可以将代码中的F://改成自己有的盘
运行软件:Sublime Text3
运行环境:Anaconda3
主要思路:
get_url():得到每一个章节的url,返回一个url列表
parse_url()解析url章节
main()遍历所有章节
其中url_main是小说链接
import requests
from pyquery import PyQuery as pq
import re
import os
book_name=''
chapter=''
url_main='https://book.qidian.com/info/1013439092'
url_main+='#Catalog'
#传入主url,得到一个url列表,列表是每个章节目录的url
def get_url():
global book_name
global url_main
url_list=[]
reponse=requests.get(url_main)
html=reponse.text
doc=pq(html)
link=str(doc('.volume .cf li a'))
book_name=str(doc('.book-info h1 em').text())
os.mkdir("F://"+book_name)
pattern=re.compile('href="(.*?)".*?target',re.S)
results=re.findall(pattern,link)
for result in results:
url_list.append(result)
return url_list
#解析每个章节,得到里面的内容
def parse_url(url,name='xy'):
global chapter
response=requests.get(url)
doc=pq(response.text)
content=doc('p')
chapter=doc('.j_chapterName').text()
result=content.text()
with open("F://{0}//{1}.txt".format(book_name,str(name)),'w+',encoding='utf-8') as f:
f.write(result)
print('正在录入: %s' % chapter)
#循环遍历
def main():
global chapter
url_list=get_url()
for url in url_list:
parse_url('http:'+url,chapter)
if __name__=='__main__':
main()
第一本书:
第二本书:
保存结果: