从Java应用程序在Chrome控制台中执行JavaScript命令。

问题描述 投票:3回答:1

我想创建一个简单的应用程序,它将在Chrome Console中对特定页面执行JavaScript命令,并返回一个输出。

也就是说,我想从当前页面获取所有可访问的链接。我可以通过在 Chrome 控制台中运行以下命令来实现。

urls = $$('a'); for (url in urls) console.log(urls[url].href);

它将返回一组链接作为输出,我希望能够在我的应用程序中处理这些链接。

我可以从Chrome控制台中手动运行它,但我想自动完成这项任务,因为我有很多链接要处理。

伪代码的内容如下。

function runCommandOnSite(command, site) { ... }

function main() {
  let site = "facebook.com";
  let command = "urls = $$('a'); for (url in urls) console.log(urls[url].href)";
  let result_links = runCommandOnSite(site, command);
  console.log(result_links);
}

注: 任何可以从Linux桌面运行的编程语言都可以接受。

javascript java python url google-chrome-devtools
1个回答
2
投票

听起来,你想刮取一个网页,并获取该网页中的所有URL。每当你面临这样的问题时,总是搜索任何喜欢的语言的Web Crawler例子。

下面给出了一些从给定网页中刮取URL集的例子。当然,你可能要对输出进行一些过滤。但是,玩一玩,看看......

Python 3 - 美女汤4

from bs4 import BeautifulSoup
from urllib.request import urlopen
import ssl

# to open up HTTPS URLs
gcontext = ssl.SSLContext()

# You can give any URL here. I have given the Stack Overflow homepage
url = 'https://stackoverflow.com'
data = urlopen(url, context=gcontext).read()

page = BeautifulSoup(data, 'html.parser')

for link in page.findAll('a'):
    l = link.get('href')
    print(l)

Java - JSoup

看一看 本例.

Node JS - Cheerio

看一看 本例.

使用Selenium Web驱动--适用于大多数编程语言。

这一节我就不解释了,因为这一节涉及面太广,超出了本回答的范围。

© www.soinside.com 2019 - 2024. All rights reserved.