最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python爬蟲(chóng)框架scrapy實(shí)現(xiàn)的文件下載功能示例

 更新時(shí)間:2018年08月04日 08:56:04   作者:Charles.L  
這篇文章主要介紹了Python爬蟲(chóng)框架scrapy實(shí)現(xiàn)的文件下載功能,結(jié)合實(shí)例形式分析了scrapy框架進(jìn)行文件下載的具體操作步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下

本文實(shí)例講述了Python爬蟲(chóng)框架scrapy實(shí)現(xiàn)的文件下載功能。分享給大家供大家參考,具體如下:

我們?cè)趯?xiě)普通腳本的時(shí)候,從一個(gè)網(wǎng)站拿到一個(gè)文件的下載url,然后下載,直接將數(shù)據(jù)寫(xiě)入文件或者保存下來(lái),但是這個(gè)需要我們自己一點(diǎn)一點(diǎn)的寫(xiě)出來(lái),而且反復(fù)利用率并不高,為了不重復(fù)造輪子,scrapy提供很流暢的下載文件方式,只需要隨便寫(xiě)寫(xiě)便可用了。

mat.py文件

# -*- coding: utf-8 -*-
import scrapy
from scrapy.linkextractor import LinkExtractor
from weidashang.items import matplotlib
class MatSpider(scrapy.Spider):
  name = "mat"
  allowed_domains = ["matplotlib.org"]
  start_urls = ['https://matplotlib.org/examples']
  def parse(self, response):
       #抓取每個(gè)腳本文件的訪問(wèn)頁(yè)面,拿到后下載
    link = LinkExtractor(restrict_css='div.toctree-wrapper.compound li.toctree-l2')
    for link in link.extract_links(response):
      yield scrapy.Request(url=link.url,callback=self.example)
  def example(self,response):
      #進(jìn)入每個(gè)腳本的頁(yè)面,抓取源碼文件按鈕,并和base_url結(jié)合起來(lái)形成一個(gè)完整的url
    href = response.css('a.reference.external::attr(href)').extract_first()
    url = response.urljoin(href)
    example = matplotlib()
    example['file_urls'] = [url]
    return example

pipelines.py

class MyFilePlipeline(FilesPipeline):
  def file_path(self, request, response=None, info=None):
    path = urlparse(request.url).path
    return join(basename(dirname(path)),basename(path))

settings.py

ITEM_PIPELINES = {
  'weidashang.pipelines.MyFilePlipeline': 1,
}
FILES_STORE = 'examples_src'

items.py

class matplotlib(Item):
  file_urls = Field()
  files = Field()

run.py

from scrapy.cmdline import execute
execute(['scrapy', 'crawl', 'mat','-o','example.json'])

更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python Socket編程技巧總結(jié)》、《Python正則表達(dá)式用法總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門(mén)與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Python數(shù)據(jù)處理的六種方式總結(jié)

    Python數(shù)據(jù)處理的六種方式總結(jié)

    在 Python 的數(shù)據(jù)處理方面經(jīng)常會(huì)用到一些比較常用的數(shù)據(jù)處理方式,比如pandas、numpy等等。今天介紹的這款 Python 數(shù)據(jù)處理的管道數(shù)據(jù)處理方式,通過(guò)鏈?zhǔn)胶瘮?shù)的方式可以輕松的完成對(duì)list列表數(shù)據(jù)的處理,希望對(duì)大家有所幫助
    2022-11-11
  • Python?中如何將十六進(jìn)制轉(zhuǎn)換為?Base64

    Python?中如何將十六進(jìn)制轉(zhuǎn)換為?Base64

    本篇文章將介紹在?Python?中將?hex?轉(zhuǎn)換為?base64?的方法,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • python實(shí)現(xiàn)數(shù)通設(shè)備端口監(jiān)控示例

    python實(shí)現(xiàn)數(shù)通設(shè)備端口監(jiān)控示例

    這篇文章主要介紹了python實(shí)現(xiàn)數(shù)通設(shè)備端口監(jiān)控示例,需要的朋友可以參考下
    2014-04-04
  • python搶購(gòu)軟件/插件/腳本附完整源碼

    python搶購(gòu)軟件/插件/腳本附完整源碼

    這篇文章主要介紹了python搶購(gòu)軟件/插件/腳本附完整源碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • python?sklearn與pandas實(shí)現(xiàn)缺失值數(shù)據(jù)預(yù)處理流程詳解

    python?sklearn與pandas實(shí)現(xiàn)缺失值數(shù)據(jù)預(yù)處理流程詳解

    對(duì)于缺失值的處理,主要配合使用sklearn.impute中的SimpleImputer類、pandas、numpy。其中由于pandas對(duì)于數(shù)據(jù)探索、分析和探查的支持較為良好,因此圍繞pandas的缺失值處理較為常用
    2022-09-09
  • Python+Turtle動(dòng)態(tài)繪制一棵樹(shù)實(shí)例分享

    Python+Turtle動(dòng)態(tài)繪制一棵樹(shù)實(shí)例分享

    這篇文章主要介紹了Python+Turtle動(dòng)態(tài)繪制一棵樹(shù)實(shí)例分享,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • Python如何使用paramiko模塊連接linux

    Python如何使用paramiko模塊連接linux

    這篇文章主要介紹了Python如何使用paramiko模塊連接linux,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • Flask和Django框架中自定義模型類的表名、父類相關(guān)問(wèn)題分析

    Flask和Django框架中自定義模型類的表名、父類相關(guān)問(wèn)題分析

    這篇文章主要介紹了Flask和Django框架中自定義模型類的表名、父類相關(guān)問(wèn)題,結(jié)合實(shí)例形式對(duì)比分析了Flask框架與Django框架表名定義方式的不同之處,并簡(jiǎn)單描述了框架的父類繼承問(wèn)題,需要的朋友可以參考下
    2018-07-07
  • Python協(xié)程的2種實(shí)現(xiàn)方式分享

    Python協(xié)程的2種實(shí)現(xiàn)方式分享

    在?Python?中,協(xié)程(Coroutine)是一種輕量級(jí)的并發(fā)編程方式,可以通過(guò)協(xié)作式多任務(wù)來(lái)實(shí)現(xiàn)高效的并發(fā)執(zhí)行。本文主要介紹了Python實(shí)現(xiàn)協(xié)程的2種方式,希望對(duì)大家有所幫助
    2023-04-04
  • Python Playwright 文本框操作技巧

    Python Playwright 文本框操作技巧

    這篇文章主要介紹了Python Playwright 文本框操作技巧,包括如何獲得文本框的值,以及向文本框中添加單行和多行文本,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05

最新評(píng)論

汉阴县| 永修县| 南和县| 兴山县| 河西区| 阿拉善左旗| 石柱| 富平县| 永定县| 乌拉特中旗| 沛县| 克东县| 清河县| 新龙县| 乌兰察布市| 双江| 新建县| 密云县| 宜城市| 阳城县| 华容县| 兴化市| 喜德县| 科技| 临朐县| 瓮安县| 景东| 泰顺县| 黄山市| 平舆县| 积石山| 沧州市| 西乌珠穆沁旗| 安化县| 岳阳县| 呈贡县| 正宁县| 和静县| 昌宁县| 巫溪县| 龙陵县|