使用Scrapy爬蟲框架簡單爬取圖片並保存本地(妹子圖)


初學Scrapy,實現爬取網絡圖片並保存本地功能

一、先看最終效果

保存在F:\pics文件夾下
這里寫圖片描述

 

二、安裝scrapy

1、python的安裝就不說了,我用的python2.7,執行命令pip install scrapy,或者使用easy_install 命令都可以

2、可能會報如下錯誤

***********************************************************  Could not find function xmlCheckVersion in library libxml2. Is libxml2 installed?  ***********************************************************
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

這里寫圖片描述
解決方法:安裝libxml2
下載對應的Python的版本,安裝即可,網址:
https://pypi.python.org/pypi/lxml/3.4.4

三、創建項目

1、執行命令

scrapy startproject xiaohuar
  • 1
  • 1

會自動創建xiaohuar的scrapy項目

2、項目結構(我用的是WingIDE)

這里寫圖片描述

文件說明:
• scrapy.cfg 項目的配置信息,主要為Scrapy命令行工具提供一個基礎的配置信息。(真正爬蟲相關的配置信息在settings.py文件中)
• items.py 設置數據存儲模板,用於結構化數據,如:Django的Model
• pipelines 數據處理行為,如:一般結構化的數據持久化
• settings.py 配置文件,如:遞歸的層數、並發數,延遲下載等
• spiders 爬蟲目錄,如:創建文件,編寫爬蟲規則

四、編寫爬蟲程序

1、在spiders文件夾下創建.py文件

代碼中注釋已經很詳細了,就不解釋了,關於解析html內容,使用的是xpath,之前使用Javawebmagic 爬蟲框架也是使用的此種方式,所示還是比較熟悉,一些插敘語法參考步驟2

 

2、xpath查詢語法

查詢標簽中帶有某個class屬性的標簽://div[@class=’c1’]即子子孫孫中標簽是div且class=‘c1’的標簽
• 查詢標簽中帶有某個class=‘c1’並且自定義屬性name=‘alex’的標簽://div[@class=’c1’][@name=’alex’]
• 查詢某個標簽的文本內容://div/span/text() 即查詢子子孫孫中div下面的span標簽中的文本內容
• 查詢某個屬性的值(例如查詢a標簽的href屬性)://a/@href

3、運行

進入到xiaohuar目錄,執行
scrapy crawl xiaohuar
可能會報以下錯誤,原因是少win32api的模塊
這里寫圖片描述
解決方法:
選擇對應的版本下載安裝即可地址:
http://sourceforge.net/projects/pywin32/files/

4、關於scrapy shell終端

可以使用scrapy shell進行調試,例如執行
scrapy shell http://www.xiaohuar.com/list-1-1.html
就可以查看得到的數據
這里寫圖片描述

5、最后的說明

程序執行過程中可以設置爬取的深度,我這里沒有設置,可能關掉cmd程序還在執行,可以結束python的進程,或者設置爬取深度


五、總結

最近學習在python,實現非常簡單的一個爬蟲當做練習,中間一些模塊的缺少錯誤,在網上查詢還是費了很多的時間,有的回答是沒有解決的,總之自己實踐之后才會更加深刻。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM