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

news2024/11/17 7:37:23

如果你正在寻找最强大的 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 是适合你的工具。

总结

以上就是我想跟你分享的关于用Python抓取网站的内容的实例教程,希望今天这个内容对你有用,如果你觉得有用的话,请点赞我,关注我,并将这篇文章分享给想学习如何用Python抓取网站内容数据的朋友,因为也许能够帮助到他。

最后,感谢你的阅读,人生苦短,我用Python。

【python学习】
学Python的伙伴,欢迎加入新的交流【君羊】:157862539
一起探讨编程知识,成为大神,群里还有软件安装包,实战案例、学习资料 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

算法设计与分析 SCAU10346 带价值的作业安排问题

10346 带价值的作业安排问题 时间限制:1000MS 代码长度限制:10KB 提交次数:25 通过次数:9 题型: 编程题 语言: G;GCC;VC;JAVA Description 已知n项作业E{1, 2, … ,n} 需要完成,只有一台机器,同一时刻至多完成一个作业, 而且每项作业需要…

Msyql数据库入门基础教学

目录 文章目录二、数据库三、为什么要使用数据库?四、 数据库相关的概念⑤SQL语句操作修改表insert基本使用update语句delete语句二、数据库 数据库的种类有许多,企业中常用的有MySQL、Oracle,其中MySQL使用最多,是因为他开源免费…

和外国bi相比,国产bi软件更适合中国企业

提起国外bi和国产bi软件之争,经常有人说国外bi软件起步更早,经验更丰富,功能更强大。无可否认国外bi软件发展起步早,也确实功能强大,但当他们来到中国却往往会面临着本土化难题,经常出现水土不服现象&#…

【Hack The Box】linux练习-- Jarvis

HTB 学习笔记 【Hack The Box】linux练习-- Jarvis 🔥系列专栏:Hack The Box 🎉欢迎关注🔎点赞👍收藏⭐️留言📝 📆首发时间:🌴2022年11月17日🌴 &#x1f3…

基于docker-k8s的web集群

目录 网络拓扑图 基于docker-k8s的web集群搭建 项目描述 详细步骤 1、集群ip地址的规划 2、Ansible批量部署服务器 3、创建k8s集群 4、配置NFS服务 5、pv,pvc,与NFS融合 6、配置Nginx负载均衡 网络拓扑图 基于docker-k8s的web集群搭建 项目描述…

web前端期末大作业基于html+css+javascript+jquery制作家乡主题风景网页设计与实现——张家口

家乡旅游景点网页作业制作 网页代码运用了DIV盒子的使用方法,如盒子的嵌套、浮动、margin、border、background等属性的使用,外部大盒子设定居中,内部左中右布局,下方横向浮动排列,大学学习的前端知识点和布局方式都有…

【Hack The Box】Linux练习-- Popcorn

HTB 学习笔记 【Hack The Box】Linux练习-- Popcorn 🔥系列专栏:Hack The Box 🎉欢迎关注🔎点赞👍收藏⭐️留言📝 📆首发时间:🌴2022年11月17日🌴 &#x1f…

java项目-第156期ssm贝儿幼儿教育管理系统-java毕业设计_计算机毕业设计

java项目-第156期ssm贝儿幼儿教育管理系统-java毕业设计_计算机毕业设计 【源码请到资源专栏下载】 今天分享的项目是《ssm贝儿幼儿教育管理系统》 该项目分为2个角色,管理员、用户。 用户可以浏览前台,包含功能有: 首页、幼儿园信息、活动信息、就餐信息…

CAS号:1676104-79-2

所有细胞渗透性肽C(Npys) rrrrrrr - nh₂的d模拟物。 编号: 129180中文名称: H-Cys(NPys)-D-Arg-D-Arg-D-Arg-D-Arg-D-Arg-D-Arg-D-CAS号: 1676104-79-2单字母: H2N-C(Npys)-DArg-DArg-DArg-DArg-DArg-DArg-DArg-DArg-DArg-NH2三字母: H2N-Cys(Npys)-DArg-DArg-DArg-DArg-DArg-…

Kotlin 开发Android app(八):Kotlin类对象class

只要是面向对象的编程语言,基本上都有类Class的用法,只是好不好用,好不好记而已,面向对象是c开始引入的,但是c 关于类的东西,弄的太复杂,其实在真正的项目中,很少用到非常多复杂的概…

论文阅读:Practical Deep Raw Image Denoising on Mobile Devices

论文阅读: Practical Deep Raw Image Denoising on Mobile Devices 旷视 2020 ECCV 基于深度学习的降噪方法在近几年得到了大量的研究,这些方法的效果也霸榜了很多公开的数据集。不过这些方法用到的网络模型都很大,无法在手机端侧运行。这篇…

安装 DolphinDB Python API

1. 下载 whl 包 根据 CPU 架构、操作系统,从官方网站 pypi.org 下载对应的 Python API 安装包。 对应 x86_64, Python3.8 的包: 下载链接 2. pip 离线安装 pip install dolphindb-1.30.19.2-cp38-cp38-manylinux2010_x86_64.whl 3. 验证安装是否成…

数理天地杂志数理天地杂志社数理天地编辑部2022年第20期目录

数学基础精讲《数理天地》投稿:cn7kantougao163.com 函数定义域求法分析探讨 刘志勇; 2-3 不等式证明之极值点偏移问题探究 鲁媛媛; 4-5 利用导数突破函数的图象问题 王法金; 6-7 导数求解函数单调性的类型及分析 陈泓; 8-9 关注解三角形的一个常考…

JDK下载安装及环境配置

一、文章导读 随着互联网的日益发展, 越来越多的小伙伴加入了程序员这个行列, 也有很多小伙伴正计划学习编程, 学习Java 那么对于新手来说, 第一件事就是下载安装Java开发工具包, 也就是JDK, 今天我们就来一起详细的说说怎么操作 二、JDK版本描述 学习环境中, 我们通常…

诊所要使用微信预约系统,需准备哪些资料?

许多诊所想在自己的微信公众号里,做一个预约挂号的功能,但无论是做公众号预约系统,还是预约小程序,都需要具备以下几类资料: 营业执照 诊所为患者提供线上预约挂号功能,需要借助于微信企业服务号或者小程序…

什么是CRM系统?为什么现代企业都在使用?

如今市场竞争日益激烈,不少企业管理者通过各种方式,试图寻找一个合适并有效的解决方案,以此来帮助他们解决企业管理各种难题,让企业业绩不断提高,获得持续的成功。 而企业管理软件的出现填补了企业管理领域的空缺。从…

clickhouse 多维分析函数

前言 clickhouse的强大之处在于充分利用内存计算的高效性从而快速得到计算结果,尤其是对于一些需要做聚合分析、统计等场景下,clickhouse提供了一些按维度分析的函数,本文将介绍clickhouse常用的几类多维分析函数。 groupby函数 还记得在mys…

深入理解 Hive UDAF

1. 概述 用户自定义聚合函数(UDAF)支持用户自行开发聚合函数完成业务逻辑。从实现上来看 Hive 有两种创建 UDAF 的方式,第一种是 Simple 方式,第二种是 Generic 方式。 1.1 简单 UDAF 第一种方式是 Simple(简单) 方式,即继承 org.apache.hadoop.hive.ql.exec.UDAF 类,并…

[附源码]java毕业设计线上图书销售管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

R语言绘制柱形图系列

#EasyCharts团队出品&#xff0c; #如有问题修正与深入学习&#xff0c;可联系微信&#xff1a;EasyChartslibrary(ggplot2) #---------------------------单数剧系列柱形图----------------------------------------------------mydata<-data.frame(Cutc("Fair",…