如何将HTML p标记更新为YouTube频道的总浏览量值



假设我想从YouTube频道检索总浏览量。然后我用HTML文件中的总视图更新段落标记。我该怎么做?我知道Python语言可以很容易地做到这一点,但使用Javascript有可能吗?提前谢谢。

这就是所谓的web抓取。

Web抓取的第一步是搜索是否有API已经满足您的需求。API或应用程序接口是域,您可以通过http请求和参数来请求数据。

由于youtube是一个受欢迎的网站,可能有一个官方的api和许多非官方的api,使用视频ID作为其参数(URL中的哈希数(来返回youtube视频的视图。

至于通过javascript消费API,这取决于你是使用客户端javascript(在浏览器上(还是服务器端javascript(node.js(。无论哪种方式,你都必须处理异步代码。

如果您想通过浏览器javascript发出使用API的HTTP请求,请搜索fetch。

如果您在服务器端,使用node,请查看https模块。

然而,如果你没有找到任何API来消费你想要抓取的网站,你将不得不自己做。这通常涉及:

  1. 获取原始HTML
  2. 将原始HTML解析为可导航树
  3. 构建函数以使用树,并检索符合特定条件的特定字段。例如,视图的样式与页面上的其他信息不同。这是因为它们有不同的CSS属性。要拥有不同的CSS属性,它可能有一个唯一的id或一些classes,可以帮助您识别并选择元素

正如您所说,使用python在服务器端很容易做到这一点。我们有requestsscrapy模块来进行get请求并获得纯HTML。然后,beautifulSoup可以将HTML解析为可导航的树。它还提供了操作该树的功能。

例如:

import requests
from bs4 import BeautifulSoup
response = requests.get('https://url.to.your.website')
soup = BeautifulSoup(response.text, 'lxml')
soup.find_all("p", attrs={"class": "shine"})

上面的代码(在python中(请求一个页面,将原始html传递给beautifulSoup,并使用特定类shine创建对所有<p>段落的引用。

<body>
<p class = "shine">paragrah 1 content</p>
<p class = "shine">paragrah 2 content</p>
<p>paragrah 1 content</p>
</body>

例如,如果请求的页面具有该HTML,代码片段将能够创建一个元素数组,其中引用了与特定条件相匹配的前两段。您将能够提取内容、类、导航到子类、父类等。

请注意,在解析HTML时,带有Scrapy+BeautifulSoup的Python是web抓取的标准。您可以有一个负责抓取的后端服务器,只需通过fetch使用客户端javascript即可。(即,制作您自己的API(。如果你用javascript做这件事,你就会逆流而行,你可能会发现很难完成特定的任务。

然而,这是可能的。

同样,这取决于你所说的";javascript";。如果您使用的是节点服务器端javascript,那么您可以使用jsdom来实现这一点。

客户端web抓取要困难得多。浏览器的构建就是为了避免这种情况。您可以在这里阅读有关该讨论基于浏览器的客户端抓取。

但可能有一个解决方案,我只是不知道。但我希望对您的知识有所贡献,使用适当的术语("客户端网络抓取javascript"(,您可能会在更深入的搜索中找到一些东西。

最新更新