轉(zhuǎn)自CSDN惋增,5年前寫的第一篇技術(shù)類的文章箩张,當時還是個小菜鳥,一轉(zhuǎn)眼5年過去了
當時從知乎摘抄的別人的勵志故事挤渔,激勵工作不久略失意的自己(工作缺少激情)肮街,開始利用下班時間自學(xué)android開發(fā)、iOS開發(fā)判导、Python開發(fā)嫉父。。骡楼。
職業(yè)方向有點迷茫熔号,就都在學(xué)。
幸運的是鸟整,公司下班較早5點多就下班了引镊,租住在人大附近,一下班就蹭人大的自習(xí)室學(xué)習(xí)篮条,有時蹭女友的圖書館卡去借書看弟头。
那段日子還是挺充實的,想想現(xiàn)在涉茧,基本沒有自己的時間赴恨,唉。伴栓。伦连。
因工作需要雨饺,爬取數(shù)據(jù)時的小研究,當時感覺很有成就感,不過現(xiàn)在早就忘的差不多了,sad...
https://blog.csdn.net/webgeek/article/details/8624908
----------------------------------------------------------------------說正事分割線------------------------------------------------------------------------------------
安裝scrapy的方法詳解
scrapy在國內(nèi)目前使用的人比較少蒿涎,除了他比較新以外,還在于他本身還有很多弊端移斩,比如:需要的支持包比較多,這些支持包相互之間的依賴關(guān)系绢馍,導(dǎo)致人們在安裝他的時候各種吐血向瓷,而且吐血了還不一定又正確的結(jié)果!所以舰涌,今天趁自己需要換工作環(huán)境猖任,記錄點滴。
本次安裝使用的系統(tǒng)環(huán)境是windows xp舵稠。以下給出具體步驟超升。我想如果照做一定能夠成功哦入宦。
1.安裝python2.6.這里選擇的是python2.6,為什么選擇這個版本哺徊,首先,scrapy官網(wǎng)上明確寫出:requirements:
Python 2.5, 2.6, 2.7 (3.x is not yet supported), 即目前只支持python2.5,2.6,2.7.3以上版本的python還不支持.而本人在從前使用scrapy開發(fā)的過程種發(fā)現(xiàn)2.5仍然又某些bug,具體的就暫時不說了乾闰。http://www.codepub.com/software/Python-12776.html 由于python官網(wǎng)偶爾打不開(打不開我想你懂的B渥贰),所以給了個國內(nèi)的下載鏈接涯肩,這個鏈接也又可能又一天不能使用轿钠。所以需要同學(xué)們自己下了。安裝python病苗,解壓后得到右邊圖標疗垛,雙擊安裝,幾乎不用設(shè)置就能成功硫朦,也就是說在這里如果你python環(huán)境都不會安裝的話贷腕,就沒必要在看后面的了,所以python的安裝我真的想偷懶了咬展。不過還是要說環(huán)境變量設(shè)置上泽裳,在我的電腦-》高級環(huán)境變量里的path種設(shè)置剛才我安裝的pyton的根文件目錄,這里將C:\Python26加入到環(huán)境變量:,到這里安裝python結(jié)束,在cmd模式下輸入執(zhí)行python,產(chǎn)生下面的類似的畫面表示python安裝成功.
2.按照python官網(wǎng)準備安裝twisted.
twisted的安裝方法破婆,安裝twisted先需要zope.interface,PyopenSSL,這2個第三方包涮总。而通過twisted官網(wǎng)上,我們可以看見下載的都是zope.interface,PyopenSSL等都是egg文件祷舀,那么在這里我們就先需要setuptools工具.
1.在這里下載:http://pypi.python.org/packages/2.6/s/setuptools/setuptools-0.6c11.win32-py2.6.exe 這些我給出的鏈接只是我當前找到的我能使用的瀑梗,加入你不好使烹笔,可以嘗試換一個,秉承一個原則是即是setuptools工具又是對于py2.6的抛丽。,雙擊這個圖標執(zhí)行箕宙。那么執(zhí)行后在python根目錄下的scripts文件夾里就會有easy_install.py等文件了,都帶有easy_install字眼铺纽。easy_install工具安裝完成柬帕。
2.zope_interface的安裝.通過twised的下載頁面:http://twistedmatrix.com/trac/wiki/Downloads 點擊進行zope.interface,進入到http://pypi.python.org/pypi/zope.interface#download , 選擇符合當前環(huán)境的可供下載的egg,這里我們選擇zope.interface-3.6.3-py2.6-win32.egg(md5),下載后是這樣的一個文件,這時候把這個egg文件拷貝進入剛才我們說道的python根目錄下的scripts目錄狡门,同easy_installs等文件一個目錄位置陷寝。然后進入cmd模式,在cmd模式下進入這個script目錄其馏,執(zhí)行easy_install.py ?egg文件名凤跑,執(zhí)行安裝這個egg文件。
這里檢查zope.interface是否安裝成功,,在python環(huán)境中執(zhí)行import zope.interface,加入不報錯誤叛复,那么說明zope.interface安裝正確仔引。
3.同上,執(zhí)行安裝PyOpenSSL.在http://pypi.python.org/pypi/pyOpenSSL 這里褐奥,有這些版本的pyOpenSSL供你選擇咖耘。在這里我們選擇pyOpenSSL-0.12-py2.6-win32-egg(md5),下載得到的egg文件,按剛才安裝zope.interface的方法撬码,在安裝pyOpenSSL,先將下載到的pyOpenSSL,拷貝到scripts文件夾中儿倒,然后進入到cmd模式下,在cmd模式中進入到對應(yīng)的scripts文件夾下呜笑,執(zhí)行easy_install.exe pyOpenSSL-0.12-py2.6-win-amd64.egg ,進行安裝夫否。效果圖為
在執(zhí)行驗證是否安裝成功:在python環(huán)境中,執(zhí)行import OpenSSL,查看是否能正常執(zhí)行在·導(dǎo)入叫胁。加入不報一場或錯誤凰慈,則表示安裝正確。
4.安裝twisted.回到twisted的下載鏈接:http://twistedmatrix.com/trac/wiki/Downloads驼鹅,因為我們這里需要的是python2.6的對應(yīng)的twisted版本微谓。這里我們選擇了第二個的exe版本。下載后雙擊就能安裝.安裝過程是自動執(zhí)行的谤民。所以也就不做過多說明堰酿,又可能發(fā)生的錯誤是版本對應(yīng)不一致,是因為你沒有選擇當前和你python對應(yīng)的版本的twisted.到這里twisted安裝完成张足,但是具體是否還有問題触创,我們不能急于的下結(jié)論,因為當前的支持包已經(jīng)有4種了为牍,分別是setuptools,zope.interface,pyOpenSSL,twisted,而在twisted中不是還有一個 PyCrypto 2.0.1 for Python 2.5 嗎哼绑?我們并沒有理他岩馍,我在這里因為是使用了python2.6版本,所以先暫時不理他抖韩,但是能完全不理他嗎蛀恩?因為我們并不確定這個包起到的作用,或者茂浮,在python.26里双谆,或者在對應(yīng)于python26版本的twisted是否存在PyCrypto 2.0.1.或者是替代他的作用的包。所以只能說暫時席揽,到時候在實際開發(fā)過程中如果有任何問題在考慮之顽馋。
3.按照scrapy官網(wǎng),安裝lxml.在scrapy 的http://doc.scrapy.org/intro/install.html#intro-install最下面的一段又關(guān)windows安裝的情況幌羞。到這里點擊關(guān)于lxml的選項寸谜,進入:http://users.skynet.be/sbi/libxml-python/ ,在這里我們選擇了:第二項,又libxml for python2.6等關(guān)鍵字.安裝后在python環(huán)境中執(zhí)行import libxml2,如果未報錯属桦,表示正確熊痴。
4.安裝scrapy.進入scrapy 官網(wǎng):http://scrapy.org/download/ 這個鏈接,點擊Scrapy 0.12 on PyPI 聂宾,注意他后面可是有括號的果善,(include windows installers),表示點擊這里也可以在windows下安裝的。進入http://pypi.python.org/pypi/Scrapy 這個頁面亏吝,點擊這里關(guān)于exe的格式岭埠,進行下載。下載后直接進行雙擊就可以執(zhí)行了蔚鸥。這個時候查看是否在python目錄下的第三方目錄中(即site-package)中是否有關(guān)于scrapy的文件夾了,然后在cmd模式中任意目錄輸入scrapy,這時候提示出錯誤许赃,是需要把python根目錄下的script目錄設(shè)置到環(huán)境變量中止喷。,然后重新打開一個cmd窗口,在任意位置執(zhí)行scrapy命令混聊,得到下列頁面弹谁,表示環(huán)境配置成功.
5.關(guān)于項目,比如抓取百度搜索引擎上的列表信息吧。
1.創(chuàng)建項目.
a.在cmd窗口中句喜,選擇一個路徑预愤。在這里我選擇了F:\workspace,在這里新建一個主機的項目:scrapy startproject mobile 表示創(chuàng)建一個項目,根目錄名為mobile.,如果沒有報出錯信息咳胃,那么表示項目新建成功植康。通過文件管理,我們可以明確的看到又這樣的一個文件系統(tǒng)已經(jīng)生成展懈,并且在對應(yīng)的文件夾下又對應(yīng)的文件销睁。
2.初步應(yīng)用
初步爬蟲這里只寫一個最簡單的爬蟲供璧,假如你遇到棘手的問題,可以同我溝通冻记,我會盡力而為的幫你睡毒。
1.在spider文件夾下新建一個文件,該文件名為baidu.py,而里面的內(nèi)容為:
from scrapy.spider import BaseSpider
class BaiduSpider(BaseSpider):
? ? name = "baidu.com"
? ? allowed_domains = ["baidu.com"]
? ? start_urls = ["http://www.baidu.com/s?wd=%CA%D6%BB%FA&inputT=2110"]
? ? def parse(self, response):
? ? ? ? filename = response.url.split("/")[-2] + '.html'
? ? ? ? open(filename, 'wb').write(response.body)
那么這里就會在項目根目錄生成一個www.baidu.com.html文件名的html文件冗栗,在cmd模式下演顾,進入項目根目錄,即與scrapy.cfg同目錄下隅居,執(zhí)行scrapy crawl baidu.com ?注意這里baidu.com是對應(yīng)BaiduSpider類下的name屬性的值.得到最終如果所示:
,最終我們將在mobile根目錄下發(fā)現(xiàn)www.baidu.com.html文件偶房,里面會又對應(yīng)的html內(nèi)容.這次先這樣了,改天說說linux環(huán)境下的配置军浆。