讀書筆記(2)——python爬蟲爬取小說,並存爲json文件

 

此次採用的是ubuntu linux系統,實話實說,裝這個系統前裝的是Centos linux的系統,對這兩個系統都不怎麼了解,可是使用Centos linux的過程當中發現一些操做並非很喜歡,而後又由於所參考的,學習的一些材料大部分都用ubuntu的系統,因此一狠心,就把Centos linux卸載了,而後從新裝了ubuntu linux。(裝在Vware下了,學習使用嘛),而後又由於這個系統設置成中文language,安裝一些必要軟件,花了些時間。好了,廢話到此結束了。html

再說一句,學好英語很重要!!python

----------------------------------------linux

爬取的網站是:http:seputu.com/,這是一個盜墓筆記的小說閱讀網,主要提取盜墓筆記的標題,章節,章節名稱和連接。json

那麼什麼是json呢,json(全稱JavaScript Object Notation) 是一種輕量級的數據交換格式,易於閱讀和編寫,同時也易於機器解析和生成。ubuntu

而csv呢,csv(全稱Comma-Separated Values)是以純文本形勢存儲表格數據(數字和文本)。純文本意味着該文件是一個字符序列,不含必須像二進制數字那樣被解讀的數據。app

存成CSV的代碼:學習

# -*- coding: utf-8 -*-
import csv
from lxml import etree
import requests
import re
#導入四個模塊(re,csv,lxml,requests)

url = r'http://seputu.com/'
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
headers = {'User-Agent':user_agent}
r = requests.get(url,headers=headers)
#設置頭文件,requests訪問網站


html = etree.HTML(r.text)
div_mulus = html.xpath('.//*[@class="mulu"]')
#使用LXML解析網頁

rows = []#定義一個list
for div_mulu in div_mulus:
    div_h2 = div_mulu.xpath('./div[@class="mulu-title"]/center/h2/text()')
    if len(div_h2) > 0:
        h2_title = div_h2[0]
        a_s = div_mulu.xpath('./div[@class="box"]/ul/li/a')
        for a in a_s:
            href = a.xpath('./@href')[0]
            box_title = a.xpath('./@title')[0]
            pattern = re.compile(r'\s*\[(.*)]\s+(.*)')
            match = pattern.search(box_title)
            if match != None:
                date = match.group(1)
                real_title = match.group(2)
                content = (h2_title,real_title,href,date)
                print(content)
                rows.append(content)
toutou = ['title','real_title','href','date']
#表格的頭
with open('3.csv','w') as fp:
    f_csv = csv.writer(fp,)
    f_csv.writerow(toutou)
    f_csv.writerows(rows)
#寫入文件

--------------------------------網站

經過對網站HTML的分析,能夠看出小說的標題和章節都在<div class="mulu">的標記下,而標題位於其中的<div class="mulu-title">下的<h2>中,章節位於其中的<div class=「box」>的<a>中。url

               

運行代碼,在該.py文件目錄下將會生成一個3.csv的文件,打開文件,以下:code

相關文章
相關標籤/搜索