此次採用的是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