# -*- coding: utf-8 -*-
import requests
from bs4 import BeautifulSoup
'''
qula.com
小说爬虫下载
'''
def say():
print ("aaa")
say()
def get_html(url):
try:
r=requests.get(url,timeout=30)
r.raise_for_status()
r.encoding=r.apparent_encoding
#print (r.text)
return r.text
except:
print ('出现了一点问题')
def get_content(url):
'''
爬取每一类型小说排行榜,
按顺序写入文件,
文件内容为 小说名字+小说链接
将内容保存到列表
并且返回一个装满url链接的列表
'''
url_list=[];
html=get_html(url)
soup=BeautifulSoup(html,'lxml')
div_main=soup.find('div',attrs={'id':'main'})
lilist=div_main.find_all('li')
for li in lilist:
#href地址
href=li.find("a")['href']
#print (li.find("a").text.strip())
#文件的创建方式
with open("data.txt",'a',encoding='utf-8') as f:
#编码格式的加入
f.write("小说名:{:<}\t 小说地址:{:<}\n".format(li.find("a").text.strip(),href))
url_list.append(href)
return url_list
#获取每个章节的url和章节名
def get_contenturl(url_list):
dict = {}
for url in url_list:
listUrl=[]
html=get_html(url)
soup=BeautifulSoup(html,'lxml')
print (html)
f=open("c:小说/{}.txt".format(soup.find('div',attrs={'id':'info'}).h1.contents[0]),'w',encoding='utf-8')
ddList=soup.find_all('dd')
dictList = {}
for dd in ddList:
#章节名
#print (dd.find("a").text.strip())
#章节url
#print ('http://www.biqugela.com'+dd.find('a')['href'])
#将章节对应的url地址放到字典里
dictList[dd.find("a").text.strip()]='http://www.biqugela.com'+dd.find('a')['href']
#获取每一个章节的内容
html=get_html('http://www.biqugela.com'+dd.find('a')['href'])
soup=BeautifulSoup(html,'lxml')
content=soup.find('div',attrs={'id':'content'})
#print (content.text.replace('<br/>','\n'))
#写入文件
f.write(dd.find("a").text.strip()+'\n')
f.write(content.text.replace('<br/>','\n'))
#再将书名与上一个地点对应
#dict[soup.find('div',attrs={'id':'info'}).h1.contents[0]]=dictList
f.close()
return dict
def main(url):
url_list= get_content(url);
get_contenturl(url_list);
url="http://www.biqugela.com/xiaoshuodaquan/"
if __name__=="__main__":
main(url)
python爬虫五:爬取小说,下载到本地
最新推荐文章于 2024-08-17 16:35:51 发布