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

2022-10-06 05:18:15 字數 2217 閱讀 9616

本人喜歡在網上看**,一直使用的是****閱讀器,可以自動從網上**想看的**到本地,比較方便。最近在學習python的爬蟲,受此啟發,突然就想到寫乙個爬取**內容的指令碼玩玩。於是,通過在逐浪上面分析源**,找出結構特點之後,寫了乙個可以爬取逐浪上**內容的指令碼。

具體實現功能如下:輸入**目錄頁的url之後,指令碼會自動分析目錄頁,提取**的章節名和章節鏈結位址。然後再從章節鏈結位址逐個提取章節內容。現階段只是將**從第一章開始,www.cppcns.com每次提取一章內容,回車之後提取下一章內容。其他**的結果可能有不同,需要做一定修改。在逐浪測試過正常。

現分享此**,一是做個記錄,方便自己以後回顧。二麼也想拋磚引玉,希望各路大神不吝賜教。

#-*-coding:utf8-*-

#!/usr/bin/python

# python: 2.7.8

# platform: windows

# program: 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 =

req = urllib2.request(url,headers = headers)

page = urllib2.urlopen(req).read()

soup = beautifulsoup(page)

novel = soup.find_all('title')[0].text.split('_ebywobpvi')[0]

# 提取**名

menu =

all_text ebywobpvi= 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爬取小說

感覺這個夠蛋疼的,因為你如果正常寫的話,前幾次執行沒問題,之後你連 都沒改,再執行就出錯了。其實這可能是網路請求失敗,或者有反爬蟲的東西吧。但這就會讓你寫的時候非常苦惱,所以這這東西,健壯性及其重要!import requests from bs4 import beautifulsoup impo...

python 爬取小說

前些天突然想看一些 可能是因為壓力大,所以就要有補償機制吧。為了節省流量,就想著把內容爬下來,然後就可以在路上看了。於是有了下面的指令碼。usr bin env python coding utf 8 import requests from lxml import etree 為了解決unicod...

python爬取小說

一 準備 安裝 requests pyquery庫 二 使用 定義了search類 初始化時傳入 第一章url 和 名即可 再呼叫all content方法即可 coding utf8 import re import requests from requests.exceptions import...