# -*- 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爬虫五:爬取小说,下载到本地
猜你喜欢
转载自blog.csdn.net/qq_38788128/article/details/80481031
今日推荐
周排行