1. 首页
  2. 网络营销赋能
  3. 海外营销

如何使用Python和JavaScript自动化URL检查工具

在使用Python for Fun&Profit重新组织XML站点地图时,我介绍了如何重新组织XML站点地图以隔离索引问题。

假设您遵循了该流程,现在您有许多未编制索引的重要URL,并且您需要总体上了解索引问题的主要原因。

在本专栏中,我们将学习一些非常令人兴奋的内容!

我们将学习如何自动化Chrome浏览器,但更具体地说,是URL检查工具,以批量检查网址并可视化影响索引的任何模式。

如何使用Python自动化URL检查工具& JavaScript的
URL检查工具已经发展得如此强大,已经成为有效的技术搜索引擎优化工作不可或缺的工具。该工具有五个主要用例,我们将在本文中自动化大多数用例:

检查索引的URL。
检查实时URL。
查看页面的呈现版本。
检查HTTP响应,页面资源和JavaScript消息。
请求为URL编制索引。
没有URL检查工具API
如果您曾尝试自动化此工具,那么您可能会因为没有可用的API而感到沮丧。

那么,我们如何在没有API的情况下实现自动化呢?

我将让您了解软件质量保证团队常用的强大技术:Web浏览器自动化。

大多数专业的Web开发商店都在Web浏览器中运行自动化质量保证测试。他们这样做是为了确保软件在构建时按预期工作。

我们将使用浏览器自动化工具和技术,但目的是运行我们最喜欢的新工具,即URL检测工具,它还没有API。

请注意,Google有明确禁止自动查询的条款,但其措辞似乎侧重于排名跟踪器使用的Google搜索。

他们可能不会对这种技术感到满意,所以我推荐使用极端适度的方法。

在任何情况下,使用此方法检查数千或数百万个URL是不切实际的,您将在下面学习。

总体方法
我们会将浏览器自动化代码连接到Chrome浏览器的运行实例。

在此示例中,我们将手动登录Google Search Console。连接后,我们将引导浏览器打开页面,点击页面元素,提取内容等。

URL检查工具只是我用来说明这种强大技术的一个例子。您可以自动执行您在Web浏览器中定期执行的任何工具或任务。

让我们玩得开心!

必需的工具和库
Pyppeteer
熊猫
Python + JavaScript
我决定用JavaScript编写内容提取代码,因为在DOM解析和DOM导航方面,它是一种更合适的语言。

但是,我正在用Python编写其余部分,因为我仍然需要分析和操作我们将收集的数据,而Python则更好。

建立起来
由于谷歌Chrome团队出色的图书馆Puppeteer,本文的神奇之处在于此。

我们专门使用非官方的Python包装器Pyppeteer。Puppeteer / Pyppeteer允许您通过开发人员工具协议界面完全控制Chrome浏览器。

要从这个URL开始下载并安装适用于您的操作系统的miniconda:https://docs.conda.io/en/latest/miniconda.html 。

在Google Colaboratory中运行此功能是不切实际的,因为您需要运行本地Chrome浏览器。

您可以选择安装Jupyter以在编码环境中使用它:

conda安装jupyter
安装Pyppeteer

python3 -m pip install pyppeteer
在我安装了Pyppeteer(版本0.0.25)后,我遇到了一些 错误,这些错误迫使我恢复到几个必需库的旧版本。

conda安装龙卷风== 4.5.3
conda install websocket == 6.0
在调试模式下启动Chrome
在正确设置Pyppeteer和Jupyter之后,您可以继续以调试模式启动Chrome以允许脚本控制。

首先,创建一个单独的用户个人资料,以保存Google Search Console帐户的用户数据和密码。

我们在Mac中使用此命令。

mkdir~ / chrome-dev
/ Applications / Google \ Chrome.app/Contents/MacOS/Google \ Chrome –remote-debugging-port = 9222 –no-first-run –user-data-dir =〜/ chrome-dev
这在Windows中是等效的(我还没有测试过)。

mkdir~ / chrome-dev
“C:\ Program Files(x86)\ Google \ Chrome \ Application \ Chrome.exe –remote-debugging-port = 9222 –no-first-run –user-data-dir =〜/ chrome-dev”
我们传递了两个新的额外参数:

-remote调试端口
-user数据-DIR
第一个启用远程控制,而第二个创建另一个用户配置文件,以便我们的测试不会影响我们的常规浏览(如果我们使用Chrome作为主浏览器)。

当Chrome启动时,它会将一些调试消息打印到控制台。您需要捕获第一行,如下所示:

DevTools在ws上搜索:// 122.0.0.1:9222 / devtools / browser / be6cf39f-0748-4d99-b9ca-cf3bda9fdca6
我们对以ws://开头的URI特别感兴趣。让我们将其复制到Python变量,以便我们可以连接到Chrome实例。

WS =” WS://127.0.0.1:9222 / devtools /浏览器/ be6cf39f-0748-4d99-b9ca-cf3bda9fdca6”
接下来,让我们手动登录我们的相关Google帐户并打开Goog​​le Search Console。

基本自动化操作
现在我们有一个处于调试模式的浏览器实例,并且我们已登录到Google Search Console,我们将模拟用户操作以自动执行URL检查工具。

这些是我们将自动执行的特定浏览器操作:

导航到网站页面。
单击URL检查器输入框。
键入我们要检查的URL,包括按Enter键提交它。
单击报告手风琴以显示报告(可选)。
运行自定义JavaScript提取功能以提取报告数据。
单击REQUEST INDEXING以请求索引。
单击TEST LIVE以检查页面的实时版本。
单击RENDERED PAGE以查看页面的呈现版本。
元素选择器
要单击网页元素并提取其内容,您需要在解析的DOM中指定它们的位置。XPath是我过去所涉及的一种方法。

您还可以直接使用CSS选择器或JS路径来处理元素,这是我们将在本文中使用的方法。您可以在Chrome中使用相对简单的任何DOM元素的XPath / CSS选择器/ JS路径:

如何使用Python自动化URL检查工具& JavaScript的
右键单击所需的元素,单击“检查元素”,在Chrome Developer Tools的“元素”视图中,再次右键单击“复制”,选择“JS路径”。

我们将手动运行URL检查器,并记录我们需要的所有选择器。我们将使用CSS选择器作为我们需要单击的元素和JS Paths来获取我们需要提取的元素。

这是我放在一起的清单:

URL检查器搜索框

sel =“#gb> div.gb_gd.gb_Md.gb_Zb> div.gb_lc.gb_wd.gb_Fd.gb_rd.gb_vd.gb_Cd> div.gb_td> form> div> div> div> div> div> div.d1dlne> input。 Ax4B8.ZAGvjd”
我们将使用此选择器单击搜索框以使其成为焦点,并键入要搜索的URL,包括ENTER键击。

请注意,每次加载Chrome浏览器时此选择器都会更改,因此我需要手动将其复制并再次粘贴到脚本中。

网址位于Google /不在Google上

我们将使用此元素来了解页面是否已编制索引。

以下选择器具有两个备用路径,具体取决于页面是否已编制索引。

参考页面

我们使用它来提取Google用于发现被检查页面的页面。

抓取日期

实时查看任何人的Google Analytics帐户。
您可以从字面上看到任何网站的实时销售和转化数据,以及哪些广告系列促成了该流量。开始免费试用。

我们使用它来提取Google抓取页面的日期。

用户声明的Canonical

我们使用它来提取页面上指定的规范。

Google-Selected Canonical

我们使用它来提取所选择的规范Google。

以下选择器将允许我们单击按钮和选项卡以执行所需的操作。

JavaScript提取
接下来,我们将创建一个JavaScript函数,其中包含用于提取的所有相关JS路径。

我们将此功能传递给Chrome以在我们的目标页面上执行,我们将返回一个Python字典,我们可以将其加载到pandas数据框中。

大多数数据提取选择器都有多个选项。如果第一个选项失败,我们使用技巧来执行替代。|| 运算符就是这样,类似于它在Unix / Linux命令行中的工作方式。

尝试直接使用Python获取这些数据是可能的,但在这种情况下,使用JavaScript会更加简单和直接。

把一切都放在一起
现在我们已经完成了所有准备步骤,让我们来看看有趣的部分。自动化整个事情!

以下是连接到Google Search Console运行的实时Chrome实例的代码。

我添加了一些额外的代码来控制窗口大小。随意更新以适应您的计算机。

创建要检查的URL列表。该列表可以来自索引下的XML站点地图。

我不建议使用这种方法检查太多的URL,也许是几十个非常重要的页面。

首先,浏览器自动化速度慢,资源密集,您需要登录自己的Google帐户。如果他们不喜欢这样,他们可以轻松地禁止您的整个帐户。

如果人们开始滥用此技术,Google也可能会开始添加验证码。

以下是在Search Console中打开主网页的代码。

然后,在这里我们可以单击URL检查器输入框以使其聚焦。

正如您在文章开头的动画GIF中看到的那样,最酷的部分是观看浏览器输入要检查的URL,逐个字符。感觉就像魔术一样。

我首先尝试直接设置输入字段值,但它不起作用。

如何使用Python自动化URL检查工具& JavaScript的
接下来,我们添加5秒的延迟以等待工具运行并检查URL。随意增加它。

当报告打开时,我们可以直接运行数据提取,但是当我们正在观察浏览器执行任务时,我认为扩展其中一个隐藏的选项卡会很有用。

现在,最重要的一步。将报告的URL数据返回到Python。我们将生成的JavaScript函数传递给Chrome,以评估并返回我们的数据字典。

这是一些示例输出。

我将留下以下步骤作为练习,让您完成使用我已经提供的选择器:

查看渲染页面。
进行实时测试。
提交页面到索引。
执行分析
在我们让Chrome和Pyppeteer为我们做繁重之后,我们应该为我们在词典列表中检查的URL编制索引数据。我们可以将它们转换为熊猫数据框。

这是一个示例运行的样子。

如何使用Python自动化URL检查工具& JavaScript的
使用pandas中的数据,我们可以对其进行切片和切块,以便轻松隔离索引中页面丢失的主要原因。

我们还可以将数据框导出为Excel或CSV以与其他团队成员共享。

资源以了解更多信息
如果你还在考虑是否应该学习Python,我希望自动化你的日常工作让你对这些可能性感到非常兴奋。你的想象力和创造力是唯一的限制。

以下是一些示例社区成员,他们正在学习Python并取得巨大成功:

感谢你@hamletbatista我在2周内选择了Python编码,并构建了一个日志文件分析工具,从SFTP获取所有访问日志,解压缩,过滤到googlebot点击(通过IP和用户代理),导出到csv和使用pandas和matplotlib pic.twitter.com/GiiBT7qtE0生成图形

  • Moshe Ma-yafit(@ napo789),2019年3月2日

最后,在@hamletbatista的TechSEO Boost演讲之后,将Jupyter和Pandas添加到我的工作流程中。pic.twitter.com/YuRtSHqlkq

  • 克里斯约翰逊(@defaced),2019年3月29日

您可以按照这些不断增长的SEO专家列表来了解最新的Python内容:

JR奥克斯
保罗夏皮罗
布兰妮穆勒
Charley Wagnier
Nacho Mascort
尼克达迪
以下是我在研究本文时发现的一些资源:

网页刮痧与木偶戏
Pythonistas的JavaScript
JavaScript箭头功能
CSS选择器

免责声明:本文仅代表作者个人观点,与穷思笔记网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。

发表评论

登录后才能评论

联系我们

 

在线咨询:点击这里给我发消息

邮件:2267450086@qq.com

QR code