摘要:,引言的架構(gòu)初探一文講解了的架構(gòu),本文就實(shí)際來(lái)安裝運(yùn)行一下爬蟲(chóng)。第一次運(yùn)行的測(cè)試成功,接下來(lái)的工作接下來(lái),我們將使用來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)爬蟲(chóng),省掉對(duì)每個(gè)人工去生成和測(cè)試的工作量。,文檔修改歷史,首次發(fā)布
1,引言
《Scrapy的架構(gòu)初探》一文講解了Scrapy的架構(gòu),本文就實(shí)際來(lái)安裝運(yùn)行一下Scrapy爬蟲(chóng)。本文以官網(wǎng)的tutorial作為例子,完整的代碼可以在github上下載。
2,運(yùn)行環(huán)境配置本次測(cè)試的環(huán)境是:Windows10, Python3.4.3 32bit
安裝Scrapy : $ pip install Scrapy #實(shí)際安裝時(shí),由于服務(wù)器狀態(tài)的不穩(wěn)定,出現(xiàn)好幾次中途退出的情況
3,編寫(xiě)運(yùn)行第一個(gè)Scrapy爬蟲(chóng)3.1. 生成一個(gè)新項(xiàng)目:tutorial
$ scrapy startproject tutorial
項(xiàng)目目錄結(jié)構(gòu)如下:
3.2. 定義要抓取的item
# -*- coding: utf-8 -*- # Define here the models for your scraped items # # See documentation in: # http://doc.scrapy.org/en/latest/topics/items.html import scrapy class DmozItem(scrapy.Item): title = scrapy.Field() link = scrapy.Field() desc = scrapy.Field()
3.3. 定義Spider
import scrapy from tutorial.items import DmozItem class DmozSpider(scrapy.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): for sel in response.xpath("http://ul/li"): item = DmozItem() item["title"] = sel.xpath("a/text()").extract() item["link"] = sel.xpath("a/@href").extract() item["desc"] = sel.xpath("text()").extract() yield item
3.4. 運(yùn)行
$ scrapy crawl dmoz -o item.json
1) 結(jié)果報(bào)錯(cuò):
A) ImportError: cannot import name "_win32stdio"
B) ImportError: No module named "win32api"
2) 查錯(cuò)過(guò)程:查看官方的FAQ和stackoverflow上的信息,原來(lái)是scrapy在python3上測(cè)試還不充分,還有小問(wèn)題。
3) 解決過(guò)程:
A) 需要手工去下載twisted/internet下的 _win32stdio 和 _pollingfile,存放到python目錄的libsitepackagestwistedinternet下
B) 下載并安裝pywin32
再次運(yùn)行,成功!在控制臺(tái)上可以看到scrapy的輸出信息,待運(yùn)行完成退出后,到項(xiàng)目目錄打開(kāi)結(jié)果文件items.json, 可以看到里面以json格式存儲(chǔ)的爬取結(jié)果。
[ {"title": [" About "], "desc": [" ", " "], "link": ["/docs/en/about.html"]}, {"title": [" Become an Editor "], "desc": [" ", " "], "link": ["/docs/en/help/become.html"]}, {"title": [" Suggest a Site "], "desc": [" ", " "], "link": ["/docs/en/add.html"]}, {"title": [" Help "], "desc": [" ", " "], "link": ["/docs/en/help/helpmain.html"]}, {"title": [" Login "], "desc": [" ", " "], "link": ["/editors/"]}, {"title": [], "desc": [" ", " Share via Facebook "], "link": []}, {"title": [], "desc": [" ", " Share via Twitter "], "link": []}, {"title": [], "desc": [" ", " Share via LinkedIn "], "link": []}, {"title": [], "desc": [" ", " Share via e-Mail "], "link": []}, {"title": [], "desc": [" ", " "], "link": []}, {"title": [], "desc": [" ", " "], "link": []}, {"title": [" About "], "desc": [" ", " "], "link": ["/docs/en/about.html"]}, {"title": [" Become an Editor "], "desc": [" ", " "], "link": ["/docs/en/help/become.html"]}, {"title": [" Suggest a Site "], "desc": [" ", " "], "link": ["/docs/en/add.html"]}, {"title": [" Help "], "desc": [" ", " "], "link": ["/docs/en/help/helpmain.html"]}, {"title": [" Login "], "desc": [" ", " "], "link": ["/editors/"]}, {"title": [], "desc": [" ", " Share via Facebook "], "link": []}, {"title": [], "desc": [" ", " Share via Twitter "], "link": []}, {"title": [], "desc": [" ", " Share via LinkedIn "], "link": []}, {"title": [], "desc": [" ", " Share via e-Mail "], "link": []}, {"title": [], "desc": [" ", " "], "link": []}, {"title": [], "desc": [" ", " "], "link": []} ]
第一次運(yùn)行scrapy的測(cè)試成功
4,接下來(lái)的工作接下來(lái),我們將使用GooSeeker API來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)爬蟲(chóng),省掉對(duì)每個(gè)item人工去生成和測(cè)試xpath的工作量。目前有2個(gè)計(jì)劃:
在gsExtractor中封裝一個(gè)方法:從xslt內(nèi)容中自動(dòng)提取每個(gè)item的xpath
從gsExtractor的提取結(jié)果中自動(dòng)提取每個(gè)item的結(jié)果
具體選擇哪個(gè)方案,將在接下來(lái)的實(shí)驗(yàn)中確定,并發(fā)布到gsExtractor新版本中。
5,文檔修改歷史2016-06-15:V1.0,首次發(fā)布
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/37998.html
摘要:快速入門(mén)首先,初步要做的就是快速構(gòu)建一個(gè)爬蟲(chóng)。然后把結(jié)果加入到一個(gè)隊(duì)列中。既然是入門(mén),我們肯定是先關(guān)心我們需要的。 因?yàn)楣卷?xiàng)目需求,需要做一個(gè)爬蟲(chóng)。所以我一個(gè)python小白就被拉去做了爬蟲(chóng)。花了兩周時(shí)間,拼拼湊湊總算趕出來(lái)了。所以寫(xiě)個(gè)blog做個(gè)記錄。 快速入門(mén) 首先,初步要做的就是快速構(gòu)建一個(gè)爬蟲(chóng)。 配置環(huán)境 Mac下安裝 1) 直接從官網(wǎng)下載 python下載官網(wǎng) 2) 是通過(guò)...
摘要:阿里云安裝腳本安裝腳本兩個(gè)腳本可以任選其一,速度都非常不錯(cuò)。推薦的加速器有和阿里云。阿里云不同平臺(tái)的鏡像加速方法配置可以參考的官方文檔。以上便是的安裝方式說(shuō)明。上一篇文章網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)爬蟲(chóng)框架的安裝下一篇文章網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)部署相關(guān)庫(kù) 上一篇文章:Python3網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)---11、爬蟲(chóng)框架的安裝:ScrapySplash、ScrapyRedis下一篇文章:Python3網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)---...
摘要:所以如果對(duì)爬蟲(chóng)有一定基礎(chǔ),上手框架是一種好的選擇。缺少包,使用安裝即可缺少包,使用安裝即可上一篇文章網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)爬取相關(guān)庫(kù)的安裝的安裝下一篇文章網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)爬蟲(chóng)框架的安裝 上一篇文章:Python3網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)---9、APP爬取相關(guān)庫(kù)的安裝:Appium的安裝下一篇文章:Python3網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)---11、爬蟲(chóng)框架的安裝:ScrapySplash、ScrapyRedis 我們直接...
摘要:注意爬豆爬一定要加入選項(xiàng),因?yàn)橹灰馕龅骄W(wǎng)站的有,就會(huì)自動(dòng)進(jìn)行過(guò)濾處理,把處理結(jié)果分配到相應(yīng)的類別,但偏偏豆瓣里面的為空不需要分配,所以一定要關(guān)掉這個(gè)選項(xiàng)。 本課只針對(duì)python3環(huán)境下的Scrapy版本(即scrapy1.3+) 選取什么網(wǎng)站來(lái)爬取呢? 對(duì)于歪果人,上手練scrapy爬蟲(chóng)的網(wǎng)站一般是官方練手網(wǎng)站 http://quotes.toscrape.com 我們中國(guó)人,當(dāng)然...
摘要:相關(guān)鏈接使用說(shuō)明安裝推薦使用安裝,命令如下驗(yàn)證安裝安裝成功后會(huì)有一個(gè)可用命令,叫做,即部署命令。我們可以輸入如下測(cè)試命令測(cè)試是否安裝成功如果出現(xiàn)如圖類似輸出則證明已經(jīng)成功安裝圖運(yùn)行結(jié)果在后文我們會(huì)詳細(xì)了解它的用法。 上一篇文章:Python3網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)---12、部署相關(guān)庫(kù)的安裝:Docker、Scrapyd下一篇文章:Python3網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)---14、部署相關(guān)庫(kù)的安裝:Scra...
閱讀 2411·2021-10-09 09:44
閱讀 2143·2021-10-08 10:05
閱讀 3435·2021-07-26 23:38
閱讀 3013·2019-08-28 18:16
閱讀 826·2019-08-26 11:55
閱讀 1830·2019-08-23 18:29
閱讀 2045·2019-08-23 18:05
閱讀 1374·2019-08-23 17:02