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

Python爬蟲框架scrapy實現的文件下載功能示例

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

本文實例講述了Python爬蟲框架scrapy實現的文件下載功能。分享給大家供大家參考,具體如下:

我們在寫普通腳本的時候,從一個網站拿到一個文件的下載url,然后下載,直接將數據寫入文件或者保存下來,但是這個需要我們自己一點一點的寫出來,而且反復利用率并不高,為了不重復造輪子,scrapy提供很流暢的下載文件方式,只需要隨便寫寫便可用了。

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):
       #抓取每個腳本文件的訪問頁面,拿到后下載
    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):
      #進入每個腳本的頁面,抓取源碼文件按鈕,并和base_url結合起來形成一個完整的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'])

更多關于Python相關內容可查看本站專題:《Python Socket編程技巧總結》、《Python正則表達式用法總結》、《Python數據結構與算法教程》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》、《Python入門與進階經典教程》及《Python文件與目錄操作技巧匯總

希望本文所述對大家Python程序設計有所幫助。

相關文章

  • Python數據處理的六種方式總結

    Python數據處理的六種方式總結

    在 Python 的數據處理方面經常會用到一些比較常用的數據處理方式,比如pandas、numpy等等。今天介紹的這款 Python 數據處理的管道數據處理方式,通過鏈式函數的方式可以輕松的完成對list列表數據的處理,希望對大家有所幫助
    2022-11-11
  • Python?中如何將十六進制轉換為?Base64

    Python?中如何將十六進制轉換為?Base64

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

    python實現數通設備端口監(jiān)控示例

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

    python搶購軟件/插件/腳本附完整源碼

    這篇文章主要介紹了python搶購軟件/插件/腳本附完整源碼,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • python?sklearn與pandas實現缺失值數據預處理流程詳解

    python?sklearn與pandas實現缺失值數據預處理流程詳解

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

    Python+Turtle動態(tài)繪制一棵樹實例分享

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

    Python如何使用paramiko模塊連接linux

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

    Flask和Django框架中自定義模型類的表名、父類相關問題分析

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

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

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

    Python Playwright 文本框操作技巧

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

最新評論

丁青县| 河西区| 南平市| 沐川县| 镇宁| 绥中县| 登封市| 临夏县| 南投市| 秀山| 红原县| 灵宝市| 怀仁县| 古丈县| 衡水市| 郸城县| 军事| 方城县| 广元市| 彭阳县| 苍梧县| 铜川市| 舟山市| 平阴县| 灵山县| 华坪县| 陕西省| 平原县| 蓬莱市| 潜江市| 修武县| 慈溪市| 巴马| 平利县| 广西| 承德县| 广河县| 分宜县| 辽宁省| 黄梅县| 随州市|