成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Scrapy學(xué)習(xí)(二) 入門(mén)

Astrian / 421人閱讀

摘要:快速入門(mén)接上篇學(xué)習(xí)一安裝,安裝后,我們利用一個(gè)簡(jiǎn)單的例子來(lái)熟悉如何使用創(chuàng)建一個(gè)爬蟲(chóng)項(xiàng)目。創(chuàng)建一個(gè)項(xiàng)目在已配置好的環(huán)境下輸入系統(tǒng)將在當(dāng)前目錄生成一個(gè)的項(xiàng)目文件。這部分才是業(yè)務(wù)的核心部分。提取的方式有幾種。具體代碼詳見(jiàn)入門(mén)項(xiàng)目

快速入門(mén)

接上篇Scrapy學(xué)習(xí)(一) 安裝,安裝后,我們利用一個(gè)簡(jiǎn)單的例子來(lái)熟悉如何使用Scrapy創(chuàng)建一個(gè)爬蟲(chóng)項(xiàng)目。

創(chuàng)建一個(gè)Scrapy項(xiàng)目

在已配置好的環(huán)境下輸入

scrapy startproject dmoz

系統(tǒng)將在當(dāng)前目錄生成一個(gè)myproject的項(xiàng)目文件。該文件的目錄結(jié)構(gòu)如下

dmoz/    # 項(xiàng)目根目錄
   scrapy.cfg    # 項(xiàng)目配置文件
   dmoz/    # 項(xiàng)目模塊
       __init__.py
        items.py    # 項(xiàng)目item文件,有點(diǎn)類似Django中的模型
        pipelines.py    # 項(xiàng)目pipelines文件,負(fù)責(zé)數(shù)據(jù)的操作和存儲(chǔ)
        settings.py    # 項(xiàng)目的設(shè)置文件.
        spiders/    # 項(xiàng)目spider目錄,編寫(xiě)的爬蟲(chóng)腳步都放此目錄下
            __init__.py

接下來(lái)我們以dmoz.org為爬取目標(biāo)。開(kāi)始變現(xiàn)簡(jiǎn)單的爬蟲(chóng)項(xiàng)目。

編寫(xiě)items

在items.py中編寫(xiě)我們所需的數(shù)據(jù)的模型

from scrapy.item import Item, Field

class Website(Item):
    name = Field()
    description = Field()
    url = Field()

這個(gè)模型用來(lái)填充我們爬取的數(shù)據(jù)

編寫(xiě)Spider

在spiders文件下新建爬蟲(chóng)文件。這部分才是業(yè)務(wù)的核心部分。
首先創(chuàng)建一個(gè)繼承scrapy.spiders.Spider的類
并且定義如下三個(gè)屬性

name 標(biāo)識(shí)spider

start_urls 啟動(dòng)爬蟲(chóng)時(shí)進(jìn)行爬取的url列表,默認(rèn)為空

parse() 每個(gè)初始的url下載后的response都會(huì)傳到該方法內(nèi),在這個(gè)方法里可以對(duì)數(shù)據(jù)進(jìn)行處理。

from scrapy.spiders import Spider
from scrapy.selector import Selector
from dirbot.items import Website

class 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):
        sites = response.css("#site-list-content > div.site-item > div.title-and-desc")
        items = []

        for site in sites:
            item = Website()
            item["name"] = site.css(
                "a > div.site-title::text").extract_first().strip()
            item["url"] = site.xpath(
                "a/@href").extract_first().strip()
            item["description"] = site.css(
                "div.site-descr::text").extract_first().strip()
            items.append(item)
        return items

其中值得注意的是,在parse方法內(nèi),我們可以用Selector選擇器來(lái)提取網(wǎng)站中我們所需的數(shù)據(jù)。提取的方式有幾種。

xpath() 傳入xpath表達(dá)式獲取節(jié)點(diǎn)值

css() 傳入css表達(dá)式獲取節(jié)點(diǎn)值

re() 傳入正則表達(dá)式獲取節(jié)點(diǎn)值 # 此方法本人未測(cè)試

運(yùn)行并保存數(shù)據(jù)

接下來(lái)我們運(yùn)行爬蟲(chóng),并將爬取的數(shù)據(jù)存儲(chǔ)到j(luò)son中

scrapy crawl dmoz -o items.json

其他

在運(yùn)行爬蟲(chóng)的過(guò)程中,我遇到了如下報(bào)錯(cuò):

KeyError: "Spider not found: dmoz

這個(gè)是因?yàn)槲业膕pider類中設(shè)置的name的值和我scrapy crawl運(yùn)行的spider不一致導(dǎo)致的。

具體代碼詳見(jiàn):
scrapy入門(mén)項(xiàng)目

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/38422.html

相關(guān)文章

  • 零基礎(chǔ)如何學(xué)爬蟲(chóng)技術(shù)

    摘要:楚江數(shù)據(jù)是專業(yè)的互聯(lián)網(wǎng)數(shù)據(jù)技術(shù)服務(wù),現(xiàn)整理出零基礎(chǔ)如何學(xué)爬蟲(chóng)技術(shù)以供學(xué)習(xí),。本文來(lái)源知乎作者路人甲鏈接楚江數(shù)據(jù)提供網(wǎng)站數(shù)據(jù)采集和爬蟲(chóng)軟件定制開(kāi)發(fā)服務(wù),服務(wù)范圍涵蓋社交網(wǎng)絡(luò)電子商務(wù)分類信息學(xué)術(shù)研究等。 楚江數(shù)據(jù)是專業(yè)的互聯(lián)網(wǎng)數(shù)據(jù)技術(shù)服務(wù),現(xiàn)整理出零基礎(chǔ)如何學(xué)爬蟲(chóng)技術(shù)以供學(xué)習(xí),http://www.chujiangdata.com。 第一:Python爬蟲(chóng)學(xué)習(xí)系列教程(來(lái)源于某博主:htt...

    KunMinX 評(píng)論0 收藏0
  • 首次公開(kāi),整理12年積累的博客收藏夾,零距離展示《收藏夾吃灰》系列博客

    摘要:時(shí)間永遠(yuǎn)都過(guò)得那么快,一晃從年注冊(cè),到現(xiàn)在已經(jīng)過(guò)去了年那些被我藏在收藏夾吃灰的文章,已經(jīng)太多了,是時(shí)候把他們整理一下了。那是因?yàn)槭詹貖A太亂,橡皮擦給設(shè)置私密了,不收拾不好看呀。 ...

    Harriet666 評(píng)論0 收藏0
  • Scrapy學(xué)習(xí)(三) 爬取豆瓣圖書(shū)信息

    摘要:因?yàn)闀簳r(shí)還沒(méi)有學(xué)到如何模擬登陸,所以我就先抓像豆瓣這樣不需要登陸的網(wǎng)站上的內(nèi)容。其中會(huì)回調(diào)函數(shù),用是因?yàn)槎拱陥D書(shū)并不是格式一致的。只需要在中設(shè)置項(xiàng)目代碼地址豆瓣圖書(shū)爬蟲(chóng) 前言 Scrapy學(xué)習(xí)(一) 安裝 Scrapy學(xué)習(xí)(二) 入門(mén) 有了前兩篇的基礎(chǔ),就可以開(kāi)始互聯(lián)網(wǎng)上爬取我們感興趣的信息了。因?yàn)闀簳r(shí)還沒(méi)有學(xué)到如何模擬登陸,所以我就先抓像豆瓣這樣不需要登陸的網(wǎng)站上的內(nèi)容。我的開(kāi)發(fā)...

    Tony_Zby 評(píng)論0 收藏0
  • 非計(jì)算機(jī)專業(yè)小白自學(xué)爬蟲(chóng)全指南(附資源)

    摘要:爬蟲(chóng)是我接觸計(jì)算機(jī)編程的入門(mén)。練練練本文推薦的資源就是以項(xiàng)目練習(xí)帶動(dòng)爬蟲(chóng)學(xué)習(xí),囊括了大部分爬蟲(chóng)工程師要求的知識(shí)點(diǎn)。拓展閱讀一文了解爬蟲(chóng)與反爬蟲(chóng)最后,請(qǐng)注意,爬蟲(chóng)的工作機(jī)會(huì)相對(duì)較少。 爬蟲(chóng)是我接觸計(jì)算機(jī)編程的入門(mén)。哥當(dāng)年寫(xiě)第一行代碼的時(shí)候別提有多痛苦。 本文旨在用一篇文章說(shuō)透爬蟲(chóng)如何自學(xué)可以達(dá)到找工作的要求。 爬蟲(chóng)的學(xué)習(xí)就是跟著實(shí)際項(xiàng)目去學(xué),每個(gè)項(xiàng)目會(huì)涉及到不同的知識(shí)點(diǎn),項(xiàng)目做多了,自然...

    CarlBenjamin 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<