小编bar*_*rny的帖子

安装后 NPX 将二进制文件存储在哪里?

如果我npx一次性运行二进制文件,它将输出以下内容:

npx my-module 

/// npx: installed 1 in 1.34s
/// Hello, from my module!
Run Code Online (Sandbox Code Playgroud)

这些二进制文件默认存储在哪里?执行后是否npx保存二进制文件,a-lanpm或者只是运行它们然后删除文件?

据我了解,在下载模块之前,npx将首先查看本地node_modules/.bin目录,然后查看目录。/usr/local/bin但我检查了这两个位置,但没有看到新模块......

node.js npm npx

33
推荐指数
2
解决办法
1万
查看次数

集群范围内 API 组中的禁止资源

我无法确定我的设置的权限到底存在什么问题,如下所示。我已经研究了所有类似的质量检查,但仍然无法解决问题。目的是部署 Prometheus 并让它抓取 /metrics集群中其他应用程序正常暴露的端点。

\n
Failed to watch *v1.Endpoints: failed to list *v1.Endpoints: endpoints is forbidden: User \\"system:serviceaccount:default:default\\" cannot list resource \\"endpoints\\" in API group \\"\\" at the cluster scope"\nFailed to watch *v1.Pod: failed to list *v1.Pod: pods is forbidden: User \\"system:serviceaccount:default:default\\" cannot list resource \\"pods\\" in API group \\"\\" at the cluster scope"\nFailed to watch *v1.Service: failed to list *v1.Service: services is forbidden: User \\"system:serviceaccount:default:default\\" cannot list resource \\"services\\" in API group \\"\\" at the cluster scope"\n...\n...\n …
Run Code Online (Sandbox Code Playgroud)

kubernetes prometheus minikube

22
推荐指数
1
解决办法
5万
查看次数

Ruby open-uri 无法打开 url (m1 mac)

我开始学习 ruby​​ 和 scraping,我尝试用 open 打开一个 url,我得到了

lib/scrapper.rb:7:in `initialize': No such file or directory @ rb_sysopen - https://en.wikipedia.org/wiki/Douglas_Adams (Errno::ENOENT) from lib/scrapper.rb:7:in `open' from lib/scrapper.rb:7:in `<main>'

这是我的代码:

# frozen_string_literal: true

require 'rubygems'
require 'open-uri'
require 'nokogiri'

document = open("https://en.wikipedia.org/wiki/Douglas_Adams")

puts document

Run Code Online (Sandbox Code Playgroud)

经过长时间的谷歌研究后,我没有找到任何解决方案,我用这个网址测试打开:http://www.krosmoz.com/fr/almanax 谢谢大家

ps我用的是mac m1不知道是否是兼容性问题

ruby open-uri nokogiri apple-m1

19
推荐指数
1
解决办法
5657
查看次数

从使用 Power BI 的网站抓取数据 - 从网站上的 Power BI 检索数据

我想从这个页面(和类似的页面)抓取数据:https : //cereals.ahdb.org.uk/market-data-centre/historical-data/feed-ingredients.aspx

此页面使用Power BI。不幸的是,找到一种抓取Power BI 的方法很困难,因为每个人都想抓取使用/进入 Power BI,而不是从中抓取。最接近的答案是这个问题。却又不相干。

首先,我使用了Apache tika,很快我意识到加载页面后正在加载表数据。我需要页面的渲染版本。

因此,我使用了Selenium。我想Select All在开始时(发送Ctrl+A组合键),但它不起作用。可能是受页面事件限制(我也尝试使用开发人员工具删除所有事件,但仍然Ctrl+A不起作用。

我还尝试阅读 HTML 内容,但 Power BIdiv使用position:absolute并区分div表中 a 的位置(行和列)将元素放在屏幕上是一项费力的活动。

由于 Power BI 使用 JSON,我尝试从那里读取数据。然而,它是如此复杂,我无法找到规则。它似乎将关键字放在某处并在表中使用它们的索引。

注意:我意识到所有数据都没有加载,甚至没有同时显示。甲divscroll-bar-part-bar是负责作为滚动条,并移动该加载/节目的数据的其他部分。

我用来读取数据的代码如下。如前所述,生成数据的顺序与浏览器上呈现的顺序不同:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

options = webdriver.ChromeOptions()
options.binary_location = "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe"
driver = webdriver.Chrome(options=options, …
Run Code Online (Sandbox Code Playgroud)

python selenium web-scraping powerbi

16
推荐指数
1
解决办法
4487
查看次数

Python 的请求会触发 Cloudflare 的安全性,而 urllib 不会

我正在为一家餐厅网站开发自动网络爬虫,但遇到了问题。所述网站使用 cloudlfare 的反机器人安全,我想绕过它,不是攻击模式,而是仅在检测到非美国 IP 或机器人时触发的验证码测试。我试图绕过它,因为当我清除 cookie、禁用 javascript 或当我使用美国代理时,cloudflare 的安全性不会触发。

知道了这一点,我尝试使用 python 的请求库:

import requests
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:77.0) Gecko/20100101 Firefox/77.0'}
response = requests.get("https://grimaldis.myguestaccount.com/guest/accountlogin", headers=headers).text
print(response)
Run Code Online (Sandbox Code Playgroud)

但这最终会触发 Cloudflare,无论我使用什么代理。

但是,当使用具有相同标头的 urllib.request 时:

import urllib.request
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:77.0) Gecko/20100101 Firefox/77.0'}
request = urllib.request.Request("https://grimaldis.myguestaccount.com/guest/accountlogin", headers=headers)
r = urllib.request.urlopen(request).read()
print(r.decode('utf-8'))
Run Code Online (Sandbox Code Playgroud)

当使用相同的美国 IP 运行时,这次它不会触发 Cloudflare 的安全性,即使它使用与请求库相同的标头和 IP。

因此,我试图找出不在 urllib 库中的请求库中究竟是什么触发了 cloudflare。

虽然典型的答案是“然后只使用 urllib”,但我想弄清楚请求到底有什么不同,以及我如何解决它,首先要了解请求的工作原理和 cloudflare 检测机器人的方式,但也是如此我可以将我能找到的任何修复应用到其他 httplib(特别是异步的)

编辑 N°2:到目前为止的进展:

感谢@TuanGeek,我们现在可以使用请求绕过 cloudflare 块,只要我们直接连接到主机 IP …

python web-scraping python-3.x python-requests

13
推荐指数
2
解决办法
7388
查看次数

Prometheus scrape /metric 带有自定义标头

我有一个将由 Prometheus 监控的应用程序,但该应用程序需要自定义标头键,例如:

x-auth-token: <customrandomtoken>
Run Code Online (Sandbox Code Playgroud)

我应该如何处理 prometheus.yml?

monitoring prometheus prometheus-blackbox-exporter

13
推荐指数
1
解决办法
1万
查看次数

在 python 中得到“__init__() 得到了一个意外的关键字参数‘document’”这个错误我正在使用 Word2Vec 和 gensim

我正在使用 Word2vec 和 gensim 进行项目,

model = gensim.models.Word2Vec(
    documents = 'userDataFile.txt',
    size=150,
    window=10,
    min_count=2,
    workers=10)
model = gensim.model.Word2Vec.load("word2vec.model")
model.train(documents, total_examples=len(documents), epochs=10)
model.save("word2vec.model")
Run Code Online (Sandbox Code Playgroud)

这是我目前拥有的部分代码,我在下面收到此错误

Traceback (most recent call last):
File "C:\Users\User\Desktop\InstaSubProject\templates\HashtagData.py", line

37, in <module>
workers=10)
TypeError: __init__() got an unexpected keyword argument 'documents'
Run Code Online (Sandbox Code Playgroud)

UserDataFile.txt 是我存储从网络抓取中获得的输出结果数据的文件。

我不太确定我需要在这里修复什么。

先感谢您 !

python gensim word2vec

11
推荐指数
3
解决办法
9086
查看次数

selenium python中的多线程

我正在开发一个需要位自动化和网络抓取的项目,我正在使用SeleniumBeautifulSoup (python2.7)

我只想打开Web 浏览器的一个实例并登录到网站,保持该会话,我试图打开由线程独立控制的新选项卡,每个线程控制一个选项卡并执行自己的任务。我该怎么做?一个示例代码会很好。好吧,这是我的代码:

def threadFunc(driver, tabId):
    if tabId == 1:
        #open a new tab and do something in it
    elif tabId == 2:
        #open another new tab with some different link and perform some task
    .... #other cases


class tabThreads(threading.Thread):

    def __init__(self, driver, tabId):
        threading.Thread.__init__(self)
        self.tabID = tabId
        self.driver = driver

    def run(self):
        print "Executing tab ", self.tabID
        threadFunc(self.driver, self.tabID)

def func():
    # Created a main window
    
    driver = …
Run Code Online (Sandbox Code Playgroud)

python selenium multithreading webdriver python-multithreading

10
推荐指数
1
解决办法
2万
查看次数

如何使用 BeautifulSoup 和 Python 调用 JavaScript 函数

作为项目的一部分,我正在执行网络抓取以从网站获取数据。我可以发出请求并获取dom中存在的数据。但是,一些数据在 javascript onClick 函数上呈现。

一种方法可能是,使用 selenium 单击链接(调用 javascript 函数)并获取呈现的数据,但这个过程很耗时,我不想打开浏览器。

除了硒之外还有其他方法可以实现吗?

网址:http : //catalog.fullerton.edu/preview_entity.php?catoid=16&ent_oid=1849

在本网页的课程部分,所有课程都是超链接,只要有人点击课程,就会调用一个 javascript 方法。我需要在 javascript 函数调用后呈现的数据。

javascript python selenium urllib web-scraping

10
推荐指数
2
解决办法
1万
查看次数

Prometheus 和节点导出器架构

我已经阅读了 3 天,甚至配置了一组容器来测试它们,但我有疑问。

据我了解,Prometheus + Node exporter 的架构是基于:

  • 节点导出器知道如何提取指标。那些在 HTTP 中公开,例如。:9201/公制
  • Prometheus 每 X 秒查询一次这些 HTTP 端点(节点导出器 HTTTP)并存储指标。它还为图形/控制台可视化/查询提供了另一个 HTTP。

问题 1:

假设您需要每 15 秒 CPU 指标、每 5m 硬盘指标、每 1m 网络、每 30 秒处理一次。

由于普罗米修斯决定了抓取间隔,如何配置为仅抓取这些值?

问题2:

假设您需要 1 个 prometheus 实例和 3 个节点导出器,不同的公共服务器。我没有看到有关节点导出器及其安全性的任何信息。HTTP 端点是公共的。

如何安全地从我的 3 个服务器查询指标?

问题 3:

我不知道我是否遗漏了什么。但是,例如,将其与 Telegraf 进行比较,后者将指标发送到数据库。因此,Telegraf 充当“节点导出器”。我只需要保护数据库连接(仅暴露端口)。

可以将节点导出器配置为每 X 次向普罗米修斯服务器发送一组指标吗?(所以我不必在每个公共服务器中公开一个公共端口,只是普罗米修斯服务器)我明白“pushgateway”是为了那个?如何更改节点导出器行为?

您是否向我推荐了任何其他可以满足我需求的架构?(1个master,多个slave来查询指标)

prometheus prometheus-node-exporter

8
推荐指数
1
解决办法
2453
查看次数