scrapy初試

scrapy初試

創(chuàng)建項目

打開cmd,在終端輸入scrapy startproject tutorial,這里將在指定的文件夾下創(chuàng)建一個scrapy工程

其中將會創(chuàng)建以下的文件:

  • scrapy.cfg: 項目的配置文件
  • tutorial/: 該項目的python模塊。之后您將在此加入代碼。
  • tutorial/items.py: 項目中的item文件.
  • tutorial/pipelines.py: 項目中的pipelines文件.
  • tutorial/settings.py: 項目的設置文件.
  • tutorial/spiders/: 放置spider代碼的目錄.

定義item

Item是保存爬取到的數(shù)據(jù)的容器;其使用方法和python字典類似, 并且提供了額外保護機制來避免拼寫錯誤導致的未定義字段錯誤。

類似在ORM中做的一樣,您可以通過創(chuàng)建一個 scrapy.Item 類, 并且定義類型為 scrapy.Field的類屬性來定義一個Item。 (如果不了解ORM, 不用擔心,您會發(fā)現(xiàn)這個步驟非常簡單)

首先根據(jù)需要從dmoz.org獲取到的數(shù)據(jù)對item進行建模。 我們需要從dmoz中獲取名字,url,以及網(wǎng)站的描述。 對此,在item中定義相應的字段。編輯 tutorial 目錄中的 items.py 文件:

import scrapy
class DmozItem(scrapy.Item):
title = scrapy.Field()
link = scrapy.Field()
desc = scrapy.Field()

一開始這看起來可能有點復雜,但是通過定義item, 您可以很方便的使用Scrapy的其他方法。而這些方法需要知道您的item的定義.

編寫第一個爬蟲

在工程的根目錄下打開終端輸入scrapy genspider demo douban.com
這里的demospders文件下的主要py文件
douban.com是要爬取的域名,會在demo.py中的 allowed_domains中顯示,主要的功能就是限制爬取的url

spider代碼中內(nèi)容解析

  • name: 用于區(qū)別Spider。 該名字必須是唯一的,您不可以為不同的Spider設定相同的名字。
  • start_urls: 包含了Spider在啟動時進行爬取的url列表。 因此,第一個被獲取到的頁面將是其中之一。 后續(xù)的URL則從初始的URL獲取到的數(shù)據(jù)中提取。
  • parse() 是spider的一個方法。 被調(diào)用時,每個初始URL完成下載后生成的 Response 對象將會作為唯一的參數(shù)傳遞給該函數(shù)。 該方法負責解析返回的數(shù)據(jù)(response data),提取數(shù)據(jù)(生成item)以及生成需要進一步處理的URLRequest對象。

以下是spider目錄下的demo.py的代碼

import scrapy

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):
    filename = response.url.split("/")[-2]
    with open(filename, 'wb') as f:
        f.write(response.body)

spider的爬取

進入工程的根目錄下打開終端輸入:scrapy crawl dmoz

spider中的數(shù)據(jù)存取

在工程的根目錄下打開終端輸入scrapy crawl dmoz -o items.json
這里是將數(shù)據(jù)存儲到json文件中

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 此環(huán)節(jié)是在MAC OS中進行搭建 安裝scrapy pip install scrapy即可快速完成安裝 創(chuàng)建項目...
    abeb6ca9bb86閱讀 720評論 0 2
  • scrapy學習筆記(有示例版) 我的博客 scrapy學習筆記1.使用scrapy1.1創(chuàng)建工程1.2創(chuàng)建爬蟲模...
    陳思煜閱讀 13,044評論 4 46
  • scrapy是python最有名的爬蟲框架之一,可以很方便的進行web抓取,并且提供了很強的定制型,這里記錄簡單學...
    bomo閱讀 2,315評論 1 11
  • 今日無意中看到這篇許久未拾起,記得讀書時喜歡看席慕蓉的詩詞散文,依稀記得一生至少該有一次,為了某個人而忘了自己 ,...
    一支筆的陪伴閱讀 340評論 18 7
  • 躺在雜亂的床上, 被子的涼舒服著肌膚, 昏黃的燈光粉刷了墻壁, 煙草的味道向著燈散去, 打牌的吵雜聲融入了空氣, ...
    可尼南柯閱讀 227評論 0 0

友情鏈接更多精彩內(nèi)容