Wiki——Windows下python2.7 爬蟲架構Scrapy環境配置
MaxSteal工程wiki
guowei.liu(blyde), 初級研發工程師
2015/8/22 21:19:43
1.開發環境介紹
1.1 作業系統
windows 7 sp1 64bit
1.2 python版本
python 2.7.10(32bit)
https://www.python.org/downloads/
備注: Windows下最好使用32bit,很多py庫都是32bit的,可以直接安裝
1.3 開發IDE
PyCharm 4.5.3 (Community Edition)
https://www.jetbrains.com/pycharm/
備注: 選擇專業版還是社群版都可以,破解方法也蠻好找的
選擇PyCharm的原因是平台優美,功能齊全,使用Git版本控制也非常友善
1.4 Scrapy版本
Scrapy1.0
http://scrapy.org/
一個快速,簡單,易擴充的的開源爬蟲架構。
Scrapy有非常成熟的介紹文檔,國内的開發者也對文檔進行了大量的翻譯,還可以找到很多志同道合的開發者一起讨論相關問題,是初學者的一個比較好的選擇。
是純Python開發的一個快速,高層次的螢幕抓取和web抓取架構,用于抓取web站點并從頁面中提取結構化的資料。
Scrapy用途廣泛,可以用于資料挖掘、監測和自動化測試。
在本工程中,将用于資料的各相關網站的資料抓取,為本站提供資源。
Scrapy 1.0英文開發文檔
Scrapy 0.25中文開發文檔
2.Scrapy安裝
2.1 安裝python的包管理工具 pip
一般安裝python時都是自帶的pip工具,要使用的話得先配置python的環境變量
向系統變量中添加python安裝目錄,比如我把python 安裝到D盤目錄下,即添加
檢查是否添加成功: 重新打開cmd,輸入
D:\Python27\;D:\Python27\Scripts;
python
,若打開Python 2.7.10編輯器環境,即成功
檢查是否安裝pip: 退出python解析器環境,輸入
pip
出現等待并提示沒有輸入包名字的,即成功
如果說沒有pip這個指令 就得自行安裝了,去官網下載下傳安裝pip即可。
2.2 安裝Scrapy
pip install scrapy
在配置好pip的前提下安裝,保證網絡良好即可
檢查是否安裝成功: 輸入
進入python編輯器環境,輸入
python
,若沒有報異常即安裝成功啦!
import scrapy
3.初試Scrapy
3.1 參考中文文檔或英文文檔
以Open Directory Project(dmoz) (dmoz) 為例來講述爬取。
本篇教程中将帶您完成下列順序任務:
1. 建立一個Scrapy項目
2. 定義提取的Item
3. 編寫爬取網站的spider 并提取Item
4. 編寫 Item Pipeline 來存儲提取到的Item(即資料)
3.1.1 建立項目
在開始爬取之前,您必須建立一個新的Scrapy項目。進入您的WorkSpace目錄中使用`Shift + 右鍵` 打開cmd,運作下列指令:
“scrapy startproject tutorial“
該指令将會在您的WorkSpace目錄下建立包含下列内容的tutorial 目錄: tutorial/ scrapy.cfg tutorial/ __init__.py items.py pipelines.py settings.py spiders/ __init__.py … 這些檔案分别是:
scrapy.cfg: 項目的配置檔案
tutorial/: 該項目的python子產品.之後您将在此加入代碼。
tutorial/items.py: 項目中的item檔案.
tutorial/pipelines.py: 項目中的pipelines檔案.
tutorial/settings.py: 項目的設定檔案.
tutorial/spiders/: 放置spider代碼的目錄.
3.1.2 編寫第一個Scrapy爬蟲
Spider是使用者編寫用于從單個網站(或者一些網站)爬取資料的類。
其包含了一個用于下載下傳的初始URL,如何跟進網頁中的連結以及如何分析頁面中的内容, 提取生成 item 的方法。
為了建立一個Spider,您必須繼承 scrapy.Spider 類, 且定義以下三個屬性:
name: 用于差別Spider。 該名字必須是唯一的,您不可以為不同的Spider設定相同的名字。
start_urls: 包含了Spider在啟動時進行爬取的url清單。 是以,第一個被擷取到的頁面将是其中之一。後續的URL則從初始的URL擷取到的資料中提取。
parse() 是spider的一個方法。 被調用時,每個初始URL完成下載下傳後生成的 Response 對象将會作為唯一的參數傳遞給該函數。 該方法負責解析傳回的資料(response data),提取資料(生成item)以及生成需要進一步處理的URL的 Request 對象。
以下為我們的第一個Spider代碼,儲存在 tutorial/spiders 目錄下的 DmozSpider.py 檔案中:(注意調整格式!!!)
import scrapy
class DmozSpider(scrapy.spiders.Spider):
name = "dmoz"
allowed_domains = ["dmoz.org"]
start_urls = [
"http://www.dmoz.org/Computers/Programming/Languages/Python/Books/",
"http://www.dmoz.org/Computers/Programming/Languages/Python/Resources/"
]
def parse(self, response):
filename = response.url.split("/")[-]
with open(filename, 'wb') as f:
f.write(response.body)
3.1.3 爬取
進入Workspace中的項目根目錄`tutorial/`,使用`Shift + 右鍵` 打開cmd并執行下列指令啟動spider:
`scrapy crawl dmoz`
`dmoz` 就是您的爬蟲名,就是 DmozSpider 類中的 name
啟動用于爬取 dmoz.org 網站的spider,
您将得到類似的輸出:
-- ::- [scrapy] INFO: Scrapy started (bot: tutorial)
-- ::- [scrapy] INFO: Optional features available: ...
-- ::- [scrapy] INFO: Overridden settings: {}
-- ::- [scrapy] INFO: Enabled extensions: ...
-- ::- [scrapy] INFO: Enabled downloader middlewares: ...
-- ::- [scrapy] INFO: Enabled spider middlewares: ...
-- ::- [scrapy] INFO: Enabled item pipelines: ...
-- ::- [dmoz] INFO: Spider opened
-- ::- [dmoz] DEBUG: Crawled () <GET http://www.dmoz.org/Computers/Programming/Languages/Python/Resources/> (referer: None)
-- ::- [dmoz] DEBUG: Crawled () <GET http://www.dmoz.org/Computers/Programming/Languages/Python/Books/> (referer: None)
-- ::- [dmoz] INFO: Closing spider (finished)
意味着您的爬蟲架構Scrapy環境配置成功啦!!!
3.2 可能遇到的問題
3.2.1 ImportError: Nomodule named win32api
python環境中缺少win32api子產品
win32api下載下傳位址(sourceforge.net)
選擇最新的版本下載下傳安裝即可。對我來說,我選擇的是pywin32-219.win32-py2.7.exe
3.2.2 其他問題
複制代碼的時候可能會影響代碼的格式,一定要好好檢查代碼格式,不然會報很多錯
根據報的錯誤檢查代碼的問題往往能解決大量問題
下一步
根據Scrapy的PDF教程學習使用Scrapy
Scrapy離線PDF
歡迎交流學習
我也是一個Scrapy新手,正在北京實習中,正在做一個垂直搜尋引擎,是以就玩玩scrapy,整理一個wiki,友善自己以後檢視,也希望給其他新手一些幫助,謝謝!
轉載請注明出處
http://blog.csdn.net/u010183402/article/details/47864497
guowei.liu