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

資訊專(zhuān)欄INFORMATION COLUMN

Scrapy基本用法

URLOS / 948人閱讀

安裝scrapy

不同操作系統(tǒng)安裝操作不同,可以直接看官方文檔Install Scrapy

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

在命令行輸入

scrapy startproject tutorial

進(jìn)入項(xiàng)目目錄創(chuàng)建一個(gè)spider

cd tutorial
scrapy genspider quotes domain.com
import scrapy

class QuotesSpider(scrapy.Spider):
    name = "quotes"

    def start_requests(self):
        urls = [
            "http://quotes.toscrape.com/page/1/",
            "http://quotes.toscrape.com/page/2/",
        ]
        for url in urls:
            yield scrapy.Request(url=url, callback=self.parse)

    def parse(self, response):
        page = response.url.split("/")[-2]
        filename = "quotes-%s.html" % page
        with open(filename, "wb") as f:
            f.write(response.body)
        self.log("Saved file %s" % filename)

運(yùn)行scrapy,在項(xiàng)目頂級(jí)目錄下輸入命令

scrapy crawl quotes

在QuotesSpider這個(gè)類(lèi)里,name指明spider的名稱(chēng),在start_requests函數(shù)里發(fā)出請(qǐng)求,用parse函數(shù)處理請(qǐng)求返回的結(jié)果,start_requests函數(shù)可以替換為start_urls列表,scrapy會(huì)自動(dòng)幫我們發(fā)出請(qǐng)求,并默認(rèn)用parse函數(shù)處理,還可以設(shè)置一些其它參數(shù),詳見(jiàn)Document

選擇器用法

scrapy內(nèi)置css選擇器和xpath選擇器,當(dāng)然你也可以選擇使用其他的解析庫(kù),比如BeautifulSoup,我們簡(jiǎn)單用scrapy shell展示一下scrapy內(nèi)置選擇器的用法,在命令行中輸入

scrapy shell https://docs.scrapy.org/en/latest/_static/selectors-sample1.html

示例代碼


 
  
  Example website
 
 
  
 
# 獲取標(biāo)題
# selector可以去掉
# extract返回的是列表
response.selector.xpath("http://title/text()").extract_first()
response.selector.css("title::text").extract_first()

# 獲取a標(biāo)簽里href參數(shù)內(nèi)容
response.xpath("http://a/@href").extract()
response.css("a::attr(href)").extract()

# 混合獲取img標(biāo)簽的src屬性
response.xpath("http://div[@id="images"]").css("img::attr(src)").extract()

# 獲取a標(biāo)簽中包含image的href屬性
response.xpath("http://a[contains(@href, "image")]/@href").extract()
response.css("a[href*=image]::attr(href)").extract()

# 使用正則表達(dá)式
response.css("a::text").re("Name:(.*)")
response.css("a::text").re_first("Name:(.*)")

# 添加default參數(shù)指定默認(rèn)提取信息
response.css("aa").extract_first(default="")
Item Pipeline用法

通過(guò)parse處理函數(shù)返回的Item可以用Item Pipeline進(jìn)行加工處理,主要是數(shù)據(jù)清洗,格式化。

# 過(guò)濾掉相同的item

class DuplicatePipeline(object):
    def __init__(self):
        self.items = set()

    def process_item(self, item, spider):
        if item["id"] in self.items:
            raise DropItem("Duplicate item found: %s" % item["id"])
        else:
            self.items.add(item["id"])
            return item

需要在settings里的注冊(cè)一下自定義的Pipeline

ITEM_PIPELINES = {
     "tutorial.pipelines.TutorialPipeline": 300,
     "tutorial.pipelines.DuplicatePipeline": 200,
}

數(shù)字越小,優(yōu)先級(jí)越高

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

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

相關(guān)文章

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

    摘要:楚江數(shù)據(jù)是專(zhuān)業(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ù)分類(lèi)信息學(xué)術(shù)研究等。 楚江數(shù)據(jù)是專(zhuān)業(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
  • 非計(jì)算機(jī)專(zhuān)業(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
  • Python 爬蟲(chóng)面試題 170 道:2019 版

    摘要:下面代碼會(huì)存在什么問(wèn)題,如何改進(jìn)一行代碼輸出之間的所有偶數(shù)。簡(jiǎn)述進(jìn)程之間如何通信多路復(fù)用的作用模型的區(qū)別什么是并發(fā)和并行解釋什么是異步非阻塞的作用面試題說(shuō)說(shuō)你知道的命令如何查看某次提交修改的內(nèi)容答案掃碼下面的二維碼訂閱即可獲取。 引言 最近在刷面試題,所以需要看大量的 Python 相關(guān)的面試題,從大量的題目中總結(jié)了很多的知識(shí),同時(shí)也對(duì)一些題目進(jìn)行拓展了,但是在看了網(wǎng)上的大部分面試題不...

    trigkit4 評(píng)論0 收藏0
  • scrapy學(xué)習(xí)筆記

    摘要:是最有名的爬蟲(chóng)框架之一,可以很方便的進(jìn)行抓取,并且提供了很強(qiáng)的定制型,這里記錄簡(jiǎn)單學(xué)習(xí)的過(guò)程和在實(shí)際應(yīng)用中會(huì)遇到的一些常見(jiàn)問(wèn)題一安裝在安裝之前有一些依賴(lài)需要安裝,否則可能會(huì)安裝失敗,的選擇器依賴(lài)于,還有網(wǎng)絡(luò)引擎,下面是下安裝的過(guò)程下安裝安裝 scrapy是python最有名的爬蟲(chóng)框架之一,可以很方便的進(jìn)行web抓取,并且提供了很強(qiáng)的定制型,這里記錄簡(jiǎn)單學(xué)習(xí)的過(guò)程和在實(shí)際應(yīng)用中會(huì)遇到的一...

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

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

0條評(píng)論

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