国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python實現爬取逐浪小說的方法

2019-11-25 17:13:35
字體:
來源:轉載
供稿:網友

本文實例講述了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 BeautifulSoupimport urllib2,redef 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,noveldef 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].textif __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程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 陆川县| 绥棱县| 锦州市| 黄梅县| 兰州市| 汉源县| 张家口市| 渭南市| 河曲县| 大姚县| 山阴县| 德保县| 上虞市| 平果县| 千阳县| 内丘县| 平乐县| 津南区| 双柏县| 万山特区| 天柱县| 玛曲县| 洱源县| 隆安县| 眉山市| 陇川县| 叶城县| 玛多县| 双辽市| 丽水市| 安平县| 淮阳县| 太白县| 长葛市| 库伦旗| 舟山市| 民勤县| 长宁区| 北海市| 延寿县| 云阳县|