爬蟲7:Scrapy-耙梳頁

來源:互聯網
上載者:User

標籤:topic   部分   mode   環境   self   pen   網域名稱   body   computers   

用Scrapy做爬蟲分為四步

  • 建立項目 (Project):建立一個新的爬蟲項目
  • 明確目標(Items):明確你想要抓取的目標
  • 製作爬蟲(Spider):製作爬蟲開始爬取網頁
  • 儲存內容(Pipeline):設計管道儲存爬取內容

 

上一章節做了建立項目,接著用上一次建立的項目來爬取網頁

網上很多教程都是用的dmoz.org這個網站來做實驗,所以我也用這個來做了實驗

 

明確目標

在Scrapy中,items是用來載入抓取內容的容器

我們想要的內容是

  • 名稱(name)
  • 連結(url)
  • 描述(description)

在tutorial目錄下會有items.py檔案,在預設的代碼後面添加上我們的代碼

# -*- coding: utf-8 -*-# Define here the models for your scraped items## See documentation in:# http://doc.scrapy.org/en/latest/topics/items.htmlfrom scrapy.item import Item, Fieldimport scrapyclass TutorialItem(scrapy.Item):    # define the fields for your item here like:    # name = scrapy.Field()
#下面是我自己加的class DmozItem(Item): title = Field() link = Field() desc = Field()

 

 

製作爬蟲

爬蟲還是老規矩,先爬再取。也就是說先擷取整個網頁的內容,然後取出你需要的部分

在tutorial\spiders目錄下建立python檔案,命名為dmoz_spider.py

目前的代碼如下

from scrapy.spiders import Spiderclass DmozSpider(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("/")[-2]        open(filename,‘wb‘).write(response.body)

name是爬蟲的名字,必須唯一

allowed_domains是爬取的限制範圍,意思只爬取該網域名稱下的內容

start_urls是爬取的url列表,子URLl將會從這些起始URL中繼承性產生

parse大概可以理解為對response的預先處理

 

好啦,爬蟲寫好了,然後運行,在tutorial目錄下開啟cmd視窗

輸入

scrapy crawl dmoz

哦豁,報錯了

娘度了下,是因為沒有win32api這個模組

我用的是python2.7 32位,所以下載pywin32-219.win32-py2.7.exe這個檔案

記得不要下錯了,分32位和64位的,下載成64位的話會繼續報

dll load failed: 1% 不是有效win32的

錯誤

配置好環境後,重新運行

成功

tutorial目錄下多了book和Resources兩個檔案,這就是爬取下來的檔案

 

爬蟲7:Scrapy-耙梳頁

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.