您好,登錄后才能下訂單哦!
這篇文章主要介紹用python爬蟲下載小說的示例,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
只要利用 requests 和 Beautifulsoup 模塊就可以獲取到每一章節的 url 集合了。
import requests from bs4 import BeautifulSoup html = requests.get(url) soup = BeautifulSoup(html.text, 'lxml') all_td = soup.find_all('td', class_="L") for a in all_td: all_urls = a.find('a').get('href') print(all_urls)
獲取所有章節 url 之后,自然是獲取每一個頁面的內容,然后解析出小說的內容,保存到文件夾。這里又要用到 requests,我們寫個函數復用。
def get_html(url): # 偽裝瀏覽器的頭,這部大家應該都理解: headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'} html = requests.get(url,headers=headers) return html
獲取小說內容也很簡單,BeautifulSoup 解析出網頁,如果直接用 BeautifulSoup 通過提取網頁 html 標簽來獲取小說的話,會出現排版問題,不夠美觀。這里我們仍然用正則匹配小說內容。
for each in all_urls: soup = BeautifulSoup(get_html(each).text, 'lxml') # 獲取章節標題 title = soup.title.text.split('-')[1] all_info = soup.find('dd', id="contents") # 使用正則匹配章節內容 p = r'<dd id="contents">(.*?)</dd>' # 處理正則在匹配錯誤章節,都是作者牢騷的內容,不影響小說內容抓取,直接過濾 try: info = re.findall(p, str(all_info), re.S)[0] # 下載到txt文件 with open(title + '.txt', 'w', encoding='gbk', errors='ignore') as f: f.write(info.replace('<br/>', '\n')) print('save sucessful: %s' % title) except: print('re faild: %s' % title)
以上是“用python爬蟲下載小說的示例”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。