前言

在浏览网页时,经常会遇到喜欢的视频、音频和图片,希望将它们保存下来。通常的做法是使用浏览器的书签功能或者网站提供的收藏功能。但是,如果网站上的内容被删除,这些方式都会失效。比如在短视频网站中,如果我们收藏了一个视频,但该视频违规或者被UP主删除,那么我们将无法再次访问它,因此很难找回。因此,有必要将网页上的视频、音频和图片下载到本地,这样就不必担心网站上的内容被删除。那么如何快速下载网页上的资源内容呢?
Scrapy是一个适用于Python的快速、高层次的屏幕抓取和Web抓取框架,用于从Web站点中抓取数据并提取结构化数据。Scrapy的用途非常广泛,可用于数据挖掘、监测和自动化测试。Scrapy的吸引之处在于它是一个框架,允许用户根据自己的需求进行方便的定制。它还提供了多种类型的爬虫基类,如BaseSpider、Sitemap爬虫等,而最新版本还增加了对Web 2.0爬虫的支持。另外,Scrapeay 是Python的一个第三方库,其主要功能包括抓取网页数据、从单个网页提取数据以及从多个网页提取数据。此外,它还可以从PDF和HTML表格中提取数据。

一、 安装

1.安装库

pip install scrapeasy

2.导入库

导入库之后,只需提供主页的 URL,scrapeasy就开始去访问当前主页面。

from scrapeasy import Website, Page
web =Website("https://www.pinterest.com/")

二、常用功能函数

class Web:
    def __init__(self, url):
        self.url = url

    def get_subpages_links(self):
        # 获取指定网站的所有子页面链接
        # 实现代码

    def get_images(self):
        # 获取指定网站上的所有图像链接
        # 实现代码

    def download_media(self, media_type, output_folder):
        # 下载指定网站上的媒体文件到本地磁盘
        # 实现代码

    def get_linked_pages(self, intern=True, extern=True, domain=False):
        # 获取指定网站链接到的其他页面链接
        # 参数intern表示内部链接,extern表示外部链接,domain表示域链接
        # 实现代码

class Page:
    def __init__(self, url):
        self.url = url

    def download_media(self, media_type, output_folder):
        # 下载指定页面上的媒体文件到本地磁盘
        # 实现代码

    def get_media_links(self, media_type):
        # 获取指定页面上特定类型的媒体链接
        # 实现代码

# 示例用法:
web = Web("https://www.pinterest.com")
links = web.get_subpages_links()
images = web.get_images()
web.download_media("img", "fahrschule/images")
domains = web.get_linked_pages(intern=False, extern=False, domain=True)

page = Page("https://www.w3schools.com/html/html5_video.asp")
page.download_media("video", "w3/videos")
video_links = page.get_media_links("video")

page = Page("https://tikocash.com")
calendar_links = page.get_media_links("php")

page = Page("http://mathcourses.ch/mat182.html")
page.download_media("pdf", "mathcourses/pdf-files")

要获取 ‘pinterest.com’ 上的所有子页面链接,首先我们需要创建一个名为 ‘Web’ 的对象。使用该对象,我们可以调用一个特定的方法来收集这些链接。值得注意的是,由于本地互联网连接和目标网站服务器速度的差异,获取所有子页面链接可能需要一些时间,因此需要谨慎使用这种非常庞大的方法。

调用 ‘.getSubpagesLinks()’ 方法后,将会返回一个包含所有子页面链接的列表。需要注意的是,返回的链接列表缺少典型的 ‘http://www.’ 前缀。尽管在处理链接时可能更加方便,但在浏览器中或通过请求调用这些链接时,请确保在每个链接前面添加 ‘http://www.’。

接下来,我们可以通过调用 ‘.getImages()’ 方法来查找指向 fahrschule-liechti.com 放置在其网站上的所有图像的链接。该方法将返回一个包含所有图像链接的响应。

如果我们想将 tikocash.com 上的所有图片下载到本地磁盘,可以使用 ‘.download(“img”, “fahrschule/images”)’ 方法。首先,我们使用关键字 ‘img’ 来指定下载所有图像媒体,然后定义输出文件夹的位置,即图像应该保存的位置。通过运行这段代码,几秒钟之内就可以收到 Tikocash.com 上的所有图片。

如果想要了解 tikocash.com 链接到哪些页面,可以使用 ‘.getLinks(intern=False, extern=False, domain=True)’ 方法来获取所有链接的列表。为了获得更全面的概述,可以指定只获取域链接,以便了解它链接到的其他网站。

要进一步了解这些链接,可以调用 ‘.getLinks(intern=False, extern=True, domain=False)’ 方法来获取详细的外部链接。这将帮助我们更深入地了解所有外部链接。

要初始化页面,可以创建一个名为 ‘Page’ 的对象来代表网站中的特定页面。通过初始化页面,可以进行各种操作,比如下载视频。例如,通过初始化 ‘W3schools’ 页面,我们可以尝试下载其中的视频。

要下载其他文件类型,比如 .pdf、.php 或 .ico 文件,可以使用 ‘.download()’ 方法,并将文件类型作为参数传递给它。这样可以将指定类型的文件下载到本地磁盘。

03-09 02:17