用一行代码在几秒钟内抓取任何网站

如果你正在寻找最强大的 Python 抓取工具?不要再看了!这一行代码将帮助你立即启动并运行。

Scrapeasy

Scrapeasy 是一个 Python 库,可以轻松抓取网页并从中提取数据。它可用于从单个页面抓取数据或从多个页面抓取数据。它还可用于从 PDF 和 HTML 表格中提取数据。

Scrapeasy 让你只用一行代码就可以用 python 抓取网站,它非常便于使用并为你处理一切。你只需指定要抓取的网站以及你想要接收什么样的数据,其余的交给 Scrapeasy。

Scrapeasy Python 爬虫在编写时考虑到了快速使用。它提供以下主要功能:

  • 一键抓取网站——不仅仅是单个页面。

  • 最常见的抓取活动(接收链接、图像或视频)已经实现。

  • 从抓取的网站接收特殊文件类型,如 .php 或 .pdf 数据。

如何使用 Scrapeasy

通过 pip 下载

$ pip install scrapeasy

使用它

Scraeasy 考虑到了易用性。首先,从 Scrapeasy 导入网站和页面

from scrapeasy import Website, Page

初始化网站

首先,让我们创建一个新的网站对象。对于这种方式,只需提供主页的 URL。我将使用我多年前创建的网站的 URL:

web =Website("https://tikocash.com/solange/index.php/2022/04/13/how-do-you-control-irrational-fear-and-overthinking/
")

获取所有子站点的链接

好的,现在我们的网站已经初始化,我们对 tikocash.com 上存在的所有子网站感兴趣,要找出这一点,请让 Web 对象接收所有子页面的链接。

links = web.getSubpagesLinks()

根据你的本地互联网连接和你正在抓取的网站的服务器速度,此请求可能需要一段时间,确保不要使用这种非常庞大的方法抓取整个网页。

但回到链接获取:通过调用 .getSubpagesLinks(),用你请求所有子页面作为链接,并将收到一个 URL 列表。

links2 = web.getSubpagesLinks()

你可能已经注意到缺少典型的 http://www.-stuff。这是没有目的的,并且使你的生活更容易进一步使用链接。但请确保——当你真正想在浏览器中或通过请求调用它们时——请在每个链接前面添加 http://www. 。

查找媒体

让我们尝试找到指向 fahrschule-liechti.com 放置在其网站上的所有图像的链接。

我们通过调用 .getImages() 方法来做到这一点。

images = web.getImages()

响应将包括指向所有可用图像的链接。

下载媒体

现在让我们做一些更高级的事情。我们喜欢 tikocash.com 在其网站上的图片,所以让我们将它们全部下载到我们的本地磁盘。听起来工作量是不是很大?其实很简单!

web.download("img", "fahrschule/images")

首先,我们定义通过关键字 img 下载所有图像媒体。接下来,我们定义输出文件夹,图像应保存到的位置。就是这样!运行代码,看看发生了什么。几秒钟之内,你就收到了 Tikocash.com 上的所有图片。

获取链接

接下来,让我们找出 tikocash.com 链接到哪些页面。为了获得总体概述,让我们找出它链接到的其他网站,出于这个原因,我们指定只获取域链接。

domains = web.getLinks(intern=False, extern=False, domain=True)

因此,我们得到了在 tikocash.com 上链接的所有链接的列表。

好的,但现在我们想进一步了解这些链接,我们如何做到这一点?

获取链接域

好吧,更详细的链接只不过是外部链接,所以,我们做了同样的请求,但这次包括外部,但不包括域。

domains = web.getLinks(intern=False, extern=True, domain=False)

在这里,我们将详细了解所有外部链接。

初始化页面

好的,到目前为止,我们已经看到了很多关于网站的东西,但是,我们还没有发现 Page 是做什么的。

好吧,如前所述,该页面只是网站中的一个站点,让我们通过初始化W3schools页面,来尝试不同的示例。

w3 = Page("https://www.w3schools.com/html/html5_video.asp")

如果你还没有猜到,你很快就会明白为什么我选择了这个页面。

下载视频

是的,你没听错。Scrapeasy 可让你在几秒钟内从网页下载视频,让我们来看看如何。

w3.download("video", "w3/videos")

是的,仅此而已。只需指定要将所有视频媒体下载到输出文件夹 w3/videos 中,就可以开始了。当然,你也可以只收到视频的链接,然后再下载,但这会不太酷。

video_links = w3.getVideos()

下载其他文件类型(如 pdf 或图片)

现在让我们更笼统地说,下载特殊文件类型,如 .pdf、.php 或 .ico 怎么样?使用通用的 .get() 方法接收链接,或使用文件类型作为参数的 .download() 方法。

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

到这里就完毕。

现在让我们下载一些 PDF。

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

总之,Python 是一种通用语言,只需一行代码即可在几秒钟内抓取任何网站上的内容。

因此,这使其成为网络抓取和数据挖掘的强大工具。

因此,如果你需要从网站中提取数据,Python 是适合你的工具。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/264065.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通过跳板机拷贝远程服务器文件

## 背景 在日常开发或者运维中,经常会遇到开发环境与线上环境网络隔离,需要通过跳板机连接的场景,如果需要将目标机器上的定位信息搬迁到开发机做进一步排查时,经常取文件比较费劲,一般操作是将目标文件拷贝到跳板机&…

gnss 自然灾害监测预警系统是什么

【TH-WY1】GNSS自然灾害监测预警系统是一种基于全球导航卫星系统(GNSS)技术的自然灾害监测和预警系统。它利用GNSS的高精度定位技术,通过在地表布置GNSS接收设备,实时监测地表形变、位移、沉降等参数,从而实现对自然灾…

【FX110】因为爱情,台湾汇友陷OrientalFX投资骗局损失近50万

近日,一位台湾汇友就在感情与金钱上受到双重打击,在一场“浪漫骗局”中损失近50万新台币。 因为爱情,陷入无法出金的投资骗局 据汇友描述,她从未有过投资经验,之所以突然入市,是因为“Kevin”。Kevin是她在…

全面InfiniBand解决方案——LLM培训瓶颈问题

ChatGPT对技术的影响引发了对人工智能未来的预测,尤其是多模态技术的关注。OpenAI推出了具有突破性的多模态模型GPT-4,使各个领域取得了显著的发展。 这些AI进步是通过大规模模型训练实现的,这需要大量的计算资源和高速数据传输网络。端到端…

软考系分之多媒体的容量计算、多媒体的标准、媒体数据压缩

文章目录 1、概要2、数据压缩3、多媒体的标准4、多媒体的容量计算5、总结 1、概要 本篇重点介绍多媒体技术,包括多媒体标准、数据压缩和媒体容量的计算。 2、数据压缩 媒体数据能压缩的话,有个前提条件就是数据存在冗余,包括时间冗余、空间冗…

【Java程序设计】【C00267】基于Springboot的在线考试系统(有论文)

基于Springboot的在线考试系统(有论文) 项目简介项目获取开发环境项目技术运行截图 项目简介 本系统是基于Springboot的在线考试系统;本系统主要分为管理员、教师和学生三种角色; 管理员登录系统后,可以对首页&#x…

【打工日常】使用docker部署StackEdit编辑器-Markdown之利器

一、StackEdit介绍 StackEdit一款强大的在线Markdown编辑器,不仅具备卓越的写作功能,还支持实时预览、多设备同步等特性。 很多时候基于安全和信息保密的关系,建议放在自己的服务器或者本地linux去运行,这样会比较省心。 二、本次…

day16_ListSet课后练习题 - 参考答案

文章目录 day16_课后练习题第1题第2题第3题第4题第5题第6题第7题第8题 day16_课后练习题 第1题 案例: ​ 1、用一个String[]数组存点数 ​ 2、用一个String[]数组存花色 ​ 3、用一个String[]数组存大王、小王 ​ 4、用上面的数组,生成一副扑克牌 …

第四节:Vben Admin登录对接后端getUserInfo接口

系列文章目录 第一节:Vben Admin介绍和初次运行 第二节:Vben Admin 登录逻辑梳理和对接后端准备 第三节:Vben Admin登录对接后端login接口 第四节:Vben Admin登录对接后端getUserInfo接口 文章目录 系列文章目录前言一、回顾Vben…

多重网格(Multigrid Method)-1

See https://zhuanlan.zhihu.com/p/49489140?utm_id0

【Linux进程】进程状态---进程僵尸与孤儿

📙 作者简介 :RO-BERRY 📗 学习方向:致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 📒 日后方向 : 偏向于CPP开发以及大数据方向,欢迎各位关注,谢谢各位的支持 目录 1.进程排队2.进程状态…

Stable Diffusion 绘画入门教程(webui)-ControlNet(Inpaint)

上篇文章介绍了语义分割Tile/Blur,这篇文章介绍下Inpaint(重绘) Inpaint类似于图生图的局部重绘,但是Inpain效果要更好一点,和原图融合会更加融洽,下面是案例,可以看下效果(左侧原图…

前端基础面试题(一)

摘要:最近,看了下慕课2周刷完n道面试题,记录下... 1.请说明Ajax、Fetch、Axios三者的区别 三者都用于网络请求,但维度不同: Ajax(Asynchronous Javascript ang XML),是一种在不重新…

ARM处理器有哪些工作模式和寄存器?各寄存器作用是什么?ARM异常中断处理流程?

《嵌入式工程师自我修养/C语言》系列——ARM处理器有哪些工作模式和寄存器?各寄存器作用是什么? 一、ARM处理器的工作模式及寄存器1.1 ARM处理器的工作模式1.2 ARM处理器中的寄存器 二、ARM 异常中断处理2.1 什么是异常?异常向量表是什么&…

[RCTF2015]EasySQL1 题目分析与详解

一、题目介绍: 1、题目来源: BUUCTF网址 2、题目介绍: 拿到flag。 二、解题思路: 我们发现题目首页有登录和注册账号两个选项,我们首先尝试注册账号,尝试注册username为admin的账号,输入密码…

FPGA OSERDESE2

Output Parallel-to-Serial Logic Resources (OSERDESE2) OSERDESE2 在Xilinx 7 系列器件是一款专用的并行至串行转换器,具有特定的时钟和逻辑资源,旨在促进高速源同步接口的实现。每个OSERDESE2模块都包括一个专用的数据串行器和 3 状态控制。数据和 3 态串行器都可以在 SD…

TVS管+二极管钳位电路的分析

我们通常的电路中多用TVS管或者单二极管来进行钳位,TVS管二极管同时钳位的情况比较少见,这篇文章就是分析TVS管二极管同时钳位的电路,主要学习其分析思路。 电路如下图,就是个flyback。可以看到,电路中有个钳位电路&a…

petalinux_zynq7 驱动DAC以及ADC模块之五:nodejs+vue3实现web网页波形显示

前文: petalinux_zynq7 C语言驱动DAC以及ADC模块之一:建立IPhttps://blog.csdn.net/qq_27158179/article/details/136234296petalinux_zynq7 C语言驱动DAC以及ADC模块之二:petalinuxhttps://blog.csdn.net/qq_27158179/article/details/1362…

MySQL锁三部曲:临键、间隙与记录的奇妙旅程

欢迎来到我的博客,代码的世界里,每一行都是一个故事 MySQL锁三部曲:临键、间隙与记录的奇妙旅程 前言临键锁的奥秘间隙锁记录锁 前言 在数据库世界中,锁是维护数据完整性的一种关键机制。而MySQL中的临键锁、间隙锁和记录锁则是锁…

博客阿里云服务器2024年最新优惠价格表,61元起

博客 阿里云服务器2024年最新优惠价表,轻量级应用服务器61元起,云服务器99元起 01-30 第591章 2024年阿里云服务器最新优惠价是多少? 阿里云服务器的租用价格在不同时期是不同的。 进入2024年,阿里云服务器的优惠价格也发生了…