1. 程式人生 > >試驗python爬取逐浪小說

試驗python爬取逐浪小說

只是想試下用python爬網頁,之前用米花,後來米花不知道怎麼回事打不開了,就用的逐浪。

#coding:utf-8

import sys
reload(sys)
sys.setdefaultencoding( "utf-8" )

import urllib,sys,urllib2,os
from bs4 import BeautifulSoup

IMAGE_DIR = '/home/cloud/temp/' #存放目錄
if not os.path.exists(IMAGE_DIR):
    os.mkdir(IMAGE_DIR)

def get_book_without_db(url):
    """一邊爬取一邊寫入,不用資料庫儲存"""
    soup = BeautifulSoup(request(url))
    title = (soup.find_all("title"))[0].string.split('_')[0] #文章名

    book_path = os.path.join(IMAGE_DIR, title)
    book = open(book_path, 'a+')
    i = 1
    for volume in soup.find_all('h2'):
        i += 1
        volume_name = volume.text
        print type(volume_name)
        book.write(str(volume_name) + '\n\n\n')
        for chapter in soup.find_all('ul')[i].find_all("li"):
            chapter_name = chapter.find('a').text
            book.write(str(chapter_name) + '\n')

            chapter_url = chapter.find('a').get('href')
            content_soup = BeautifulSoup(request(chapter_url))
            content = content_soup.find_all("p")[0].contents[0]
            book.write(str(content) + '\n\n')
    book.close()
    print '書籍路徑: ', book_path

get_book_without_db('testurl')

其中,testurl是小說目錄。

因為是自學的,程式碼中獲取內容有些還是debug時看記憶體才寫的,所以可能不規範。

另外,我爬取的文章內容是一段字串,沒有自動換行。百度沒有查到,哪位知道的可否告知一下,文章內容該怎麼自動換行?

註釋:後來發現有個也是爬取逐浪的:http://www.oschina.net/code/snippet_1788589_48365

巧合啊,我是在優書網隨便選的一個網站。不過此文好像也沒有自動換行