使用Python的Scrapeasy几行代码内快速抓取任何网站的信息

news/2024/7/19 10:29:59 标签: python, 开发语言, 爬虫

前言

在浏览网页时,经常会遇到喜欢的视频、音频和图片,希望将它们保存下来。通常的做法是使用浏览器的书签功能或者网站提供的收藏功能。但是,如果网站上的内容被删除,这些方式都会失效。比如在短视频网站中,如果我们收藏了一个视频,但该视频违规或者被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/")

二、常用功能函数

python">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()’ 方法,并将文件类型作为参数传递给它。这样可以将指定类型的文件下载到本地磁盘。


http://www.niftyadmin.cn/n/5415398.html

相关文章

3d合并的模型为什么没有模型---模大狮模型网

当合并多个3D模型后,发现合并后的模型没有显示任何内容或模型消失的情况通常有以下几个可能的原因: 蒙皮和骨骼绑定问题:如果合并的模型包含了蒙皮和骨骼动画,并且在合并过程中未正确处理这些信息,可能导致模型显示不出…

Linux mmap系统调用

文章目录 前言一、mmap()函数简介二、代码演示2.1 mmap使用场景2.2 私有匿名映射2.3 私有文件映射2.4 共享匿名映射2.5 共享文件映射 参考 前言 NAMEmmap, munmap - map or unmap files or devices into memorySYNOPSIS#include <sys/mman.h>void *mmap(void *addr, siz…

怎么会有这么多的Windows系统版本,傻傻分不清!

Win10的各个版本之间的区别主要体现在功能、适用场景和面向的用户群体上。以下是各版本之间的详细区别: Windows 10 家庭版(Windows 10 Home) 主要功能:包含Windows 10的基本功能,如全新的开始菜单、Edge浏览器、Windows Hello生物特征认证登录以及虚拟助手Cortana。此外,…

docker部署项目常见的问题及解决方案

Docker部署项目时可能会遇到多种常见问题&#xff0c;以下是一些常见的问题及其解决方案&#xff1a; Docker容器启动失败&#xff1a; 检查镜像文件&#xff1a;确保镜像文件不存在错误或不完整。运行环境&#xff1a;确认运行Docker命令的环境是有效的。网络配置&#xff1a;…

WPF中如何设置自定义控件(四)

在上一节讲到过将自定义界面进行左右分割,左边作为登录的用户信息和菜单&#xff1b;右边作为详情展示界面。 这节准备在上一节的基础上对左侧部分进行细分&#xff0c;完善功能&#xff0c;左侧的内容准备做两部分填充&#xff1a;一是登录用户的信息&#xff0c;一是菜单。因…

如何将gzip后缀压缩包重命名任意后缀名并依然通过gzip.open()读取压缩包文件内容

在 Python 中&#xff0c;gzip.open() 用于解压缩 .gz 后缀的文件。因此&#xff0c;如果您将文件的后缀从 .gz 更改为其他后缀&#xff0c;例如 .diy&#xff0c;然后尝试使用 gzip.open() 打开它&#xff0c;会导致失败&#xff0c;因为 Python 会尝试使用 gzip 解压缩它&…

QNX应用开发实用命令

文档 QNX官方函数接口说明&#xff1a; https://www.qnx.com/developers/docs/7.1/#com.qnx.doc.neutrino.lib_ref/topic/about.htmlQNX编译相关官方文档&#xff1a; https://www.qnx.com/developers/docs/7.1/#com.qnx.doc.neutrino.prog/topic/devel.html命令 pidin -p …

HTML静态网页成品作业(HTML+CSS)——图书出版社介绍设计制作(6个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有6个页面。 &#x1f3f7;️想要…