Python实现爬取逐浪小说的方法(python下载官网)
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                Python实现爬取逐浪小说的方法(python下载官网)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                本文實例講述了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实现爬取逐浪小说的方法(python下载官网)的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 如何找回老的微信头像?
- 下一篇: vue.js全家桶是什么
