嚴家馨
(重慶大學經濟與工商管理學院,重慶400033)
Python 是一種面向對象、解釋型、可移植的交互式編程語言。其語法簡單清晰,容易理解,非常適合編程初學者學習使用。且Python 語言的標準庫和第三方庫非常龐大豐富,使其功能非常強大,能夠完成數據采集、數據分析、數據挖掘、網站開發等。
網絡爬蟲是一種按照一定的搜索規則,自動爬取web 網頁的應用程序。首先從一個初始頁面的URL 開始,通過分析頁面中的其他相關URL,抓取新的網頁鏈接,然后在這些網頁鏈接下,再繼續尋找新的網頁鏈接URL,反復循環,直到爬取和分析完所有頁面內容。
Scrapy 是Python 技術語言開發的一個高層次,快速抓取web 網頁的框架,用于抓取Web 網頁中的內容。Scrapy 的應用非常廣泛,常被用于網絡爬蟲,且其擁有很多簡化的高級函數和中間件接口,可以靈活地完成各種需求。
MySQL 是一個關系型數據庫管理系統,其可以將網絡爬蟲爬取的數據信息保存在不同的表中以增加儲存速度并提高靈活性。并且能夠作為一個單獨的應用程序,也可以作為一個庫嵌入到其他的軟件。被用于Navicat 數據庫軟件。
首先確定最新文章的種子地址為start_url,進入最新文章后便通過response.css 選擇器來得到第一頁及所有下一頁的url,選取一部分作為目標url,其余部分放入待爬取的url 隊列中等待爬取。在目標url 中同樣通過response.css 得出每篇文章特定的目標內容并解析匹配保存到navicat 數據庫中。以此再進入下一個循環,直到最新文章的資訊內容全部爬取完成。
開發環境:Windows 系統
開發語言:Python 語言,配置系統環境變量Path
開發工具:Pycharm
Web 抓取框架:Scrapy
數據庫管理系統:Mysql 和Navicat

圖1
本爬蟲是以Python 語言作為腳本語言編寫,Pycharm 作為此爬蟲的工具,Scrapy 是此系統的框架。在Pycharm 中創建jobbole 項目并進行Python 語言網絡爬蟲代碼的編寫。
2.3.1 伯樂在線資訊信息的獲取
a. 進入伯樂在線的開始地址為start_url: ['http://python.jobbole.com/all-posts/']
b. 通過css 選擇器獲取最新文章中一頁的url 和目標文章post_url 并交給scrapy 下載后進行解析。

d.在parse_detail()方法中通過css 選擇器獲取文章的封面圖、標題、創建時間、收藏數、點贊數、評論數、內容等并使用正則表達式進行匹配。

e.item 類的實例化
item 類在Python 中可以指定字段,通過實例化item,網絡爬蟲爬取的數據不容易出錯。
實例化:article_item =JobboleItem()
調用article_item 類:

2.3.2 伯樂在線資訊信息的存儲
首先通過MysqlPipelines()方法建立數據庫的連接,然后將伯樂在線網站獲取的標題、封面圖、日期、內容等存入數據庫中。

3.1 最新文章中封面圖的儲存,通過pipelines()方法將封面圖存儲在images 文件中。

3.2 數據庫的存儲,在pipelines 中編寫MysqlPipelines ()方法,將獲取到的所有資訊內容存儲到Navicat 數據庫中。

本文基于Python 語言的網絡爬蟲對伯樂在線最新文章的資訊信息進行了采集設計與測試,通過借助Pycharm 工具和Scrapy 網頁抓取框架編寫Python 語言的網絡爬蟲代碼,將伯樂在線最新文章中的URL、標題、內容、封面圖、點贊數、評論數等信息抓取并保存到數據庫中。此設計大大提高了人們對目標資訊信息采集的速度和準確度,也為后續準確高效挖掘與分析數據提供了保證。