本文实例讲述了Python实现爬取逐浪小说的方法。分享给大家供大家参考。具体分析如下:
本人喜欢在网上看小说,一直使用的是小说下载阅读器,可以自动从网上下载想看的小说到本地,比较方便。最近在学习Python的爬虫,受此启发,突然就想到写一个爬取小说内容的脚本玩玩。于是,通过在逐浪上面分析源代码,找出结构特点之后,写了一个可以爬取逐浪上小说内容的脚本。
具体实现功能如下:输入小说目录页的url之后,脚本会自动分析目录页,提取小说的章节名和章节链接地址。然后再从章节链接地址逐个提取章节内容。现阶段只是将小说从第一章开始,每次提取一章内容,回车之后提取下一章内容。其他网站的结果可能有不同,需要做一定修改。在逐浪测试过正常。
现分享此代码,一是做个记录,方便自己以后回顾。二么也想抛砖引玉,希望各路大神不吝赐教。
#-*-coding:utf8-*- #!/usr/bin/python # Python: 2.7.8 # Platform: Windows # Program: Get Novels From Internet # Author: wucl # Description: Get Novels # Version: 1.0 # History: 2015.5.27 完成目录和url提取 # 2015.5.28 完成目录中正则提取第*章,提取出章节链接并下载。在逐浪测试下载无误。 from bs4 import BeautifulSoup import urllib2,re def get_menu(url): """Get chapter name and its url""" user_agent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0" headers = {'User-Agent':user_agent} req = urllib2.Request(url,headers = headers) page = urllib2.urlopen(req).read() soup = BeautifulSoup(page) novel = soup.find_all('title')[0].text.split('_')[0] # 提取小说名 menu = [] all_text = soup.find_all('a',target="_blank") # 提取记载有小说章节名和链接地址的模块 regex=re.compile(ur'\u7b2c.+\u7ae0') # 中文正则匹配第..章,去除不必要的链接 for title in all_text: if re.findall(regex,title.text): name = title.text x = [name,title['href']] menu.append(x) # 把记载有小说章节名和链接地址的列表插入列表中 return menu,novel def get_chapter(name,url): """Get every chapter in menu""" html=urllib2.urlopen(url).read() soup=BeautifulSoup(html) content=soup.find_all('p') # 提取小说正文 return content[0].text if __name__=="__main__": url=raw_input("""Input the main page's url of the novel in ZhuLang\n Then Press Enter to Continue\n""") if url: menu,title=get_menu(url) print title,str(len(menu))+'\n Press Enter To Continue \n' # 输出获取到的小说名和章节数 for i in menu: chapter=get_chapter(i[0],i[1]) raw_input() print '\n'+i[0]+'\n' print chapter print '\n'
希望本文所述对大家的Python程序设计有所帮助。

Python列表切片的基本語法是list[start:stop:step]。 1.start是包含的第一個元素索引,2.stop是排除的第一個元素索引,3.step決定元素之間的步長。切片不僅用於提取數據,還可以修改和反轉列表。

ListSoutPerformarRaysin:1)DynamicsizicsizingandFrequentInsertions/刪除,2)儲存的二聚體和3)MemoryFeliceFiceForceforseforsparsedata,butmayhaveslightperformancecostsinclentoperations。

toConvertapythonarraytoalist,usEthelist()constructororageneratorexpression.1)intimpthearraymoduleandcreateanArray.2)USELIST(ARR)或[XFORXINARR] to ConconverTittoalist,請考慮performorefformanceandmemoryfformanceandmemoryfformienceforlargedAtasetset。

choosearraysoverlistsinpythonforbetterperformanceandmemoryfliceSpecificScenarios.1)largenumericaldatasets:arraysreducememoryusage.2)績效 - 臨界雜貨:arraysoffersoffersOffersOffersOffersPoostSfoostSforsssfortasssfortaskslikeappensearch orearch.3)testessenforcety:arraysenforce:arraysenforc

在Python中,可以使用for循環、enumerate和列表推導式遍歷列表;在Java中,可以使用傳統for循環和增強for循環遍歷數組。 1.Python列表遍歷方法包括:for循環、enumerate和列表推導式。 2.Java數組遍歷方法包括:傳統for循環和增強for循環。

本文討論了版本3.10中介紹的Python的新“匹配”語句,該語句與其他語言相同。它增強了代碼的可讀性,並為傳統的if-elif-el提供了性能優勢

Python中的功能註釋將元數據添加到函數中,以進行類型檢查,文檔和IDE支持。它們增強了代碼的可讀性,維護,並且在API開發,數據科學和圖書館創建中至關重要。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

Atom編輯器mac版下載
最受歡迎的的開源編輯器

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!