在 Safari 浏览器中,当请求重定向时,授权标头会被抓取。它适用于所有其他浏览器,如 Chrome、IE。
我正在执行一个 ajax 调用,其中传递了授权标头,该 API 重定向到另一个 API,状态代码为 302,在所有其他浏览器中,当请求重定向时,授权标头将被保留。但在 safari 浏览器中,它不会被持久化,因此重定向的 API 会给出 401 未经授权的响应。
我使用的是 safari 12.1.2 版本。我还尝试通过手动设置和处理重定向来更改请求重定向模式requestOptions.redirect,manual但这也不起作用,它也在该模型中给出了 401。
有人遇到过此类问题吗?我参考了多个资源但没有找到任何解决方案。
请帮忙。
我正在使用 watir gem 在我的应用程序上实现一个非常基本的刮刀。它在本地运行得很好,但是当我在 heroku 上运行它时,它会触发此错误:Webdrivers::BrowserNotFound: Failed to find Chrome binary.
我在我的应用程序中添加了 google-chrome 和 chromedriver buildpacks,以告诉 Selenium 在哪里可以找到 Heroku 上的 Chrome,但它仍然不起作用。此外,当我打印选项时,二进制文件似乎已正确设置:
#<Selenium::WebDriver::Chrome::Options:0x0000558bdf7ecc30 @args=#<Set: {"--user-data-dir=/app/tmp/chrome", "--no-sandbox", "--window-size=1200x600", "--headless", "--disable-gpu"}>, @binary="/app/.apt/usr/bin/google-chrome-stable", @prefs={}, @extensions=[], @options={}, @emulation={}, @encoded_extensions=[]>
这是我的应用程序 Buildpack URL:
1. heroku/ruby
2. heroku/google-chrome
3. heroku/chromedriver
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
def new_browser(downloads: false)
options = Selenium::WebDriver::Chrome::Options.new
chrome_dir = File.join Dir.pwd, %w(tmp chrome)
FileUtils.mkdir_p chrome_dir
user_data_dir = "--user-data-dir=#{chrome_dir}"
options.add_argument user_data_dir
if chrome_bin = ENV["GOOGLE_CHROME_SHIM"]
options.add_argument "--no-sandbox"
options.binary = chrome_bin
end
options.add_argument "--window-size=1200x600"
options.add_argument "--headless" …Run Code Online (Sandbox Code Playgroud) 当对<select>列表使用 bootstrap-select selectpicker 时,我遇到了两次触发 on change 事件的问题。
例如这里是我的选择列表
<select class="form-control selectpicker label-picker" data-style="btn-white" data-live-search="true" data-size="10">
@foreach (var option in property.Options)
{
<option value="@option.Value">@option.Label</option>
}
</select>
Run Code Online (Sandbox Code Playgroud)
这是我的 Jquery 脚本
<script>
$(document).on('change', '.label-picker', function (e) {
debugger;
})
</script>
Run Code Online (Sandbox Code Playgroud)
每当我更改下拉菜单时,它都会触发我的脚本两次。当我selectpicker从我的选择中删除类时,它只会触发一次。但是,我喜欢这种风格和内置的搜索下拉菜单的能力,所以我更喜欢使用selectpicker.
我一直在检查我的代码,我只声明bootstrap-select.min.js一次。我正在动态添加这个选择列表,它是我 UI 中另一个操作的结果。我想知道这是否是问题的一部分,但我不确定为什么它只在引用 selectpicker 时出现问题。
任何建议都会有所帮助,因为我在这上面浪费了很多时间。
我有一堆脚本可以进行网页抓取、下载文件并使用 pandas 读取它们。此过程必须部署在新的架构中,在该架构中,不适合将文件下载到磁盘上,而是最好将文件保存在内存中并从那里用 pandas 读取它。为了演示目的,我在这里留下了一个网页抓取脚本,该脚本从随机网站下载 Excel 文件:
import time
import pandas as pd
from io import StringIO, BytesIO
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from datetime import date, timedelta
from selenium.webdriver.common.keys import Keys
from selenium import webdriver
from selenium.webdriver.support.ui import Select
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
pathDriver = #Path to chromedriver
driver = webdriver.Chrome(executable_path=pathDriver)
url = 'https://file-examples.com/index.php/sample-documents-download/sample-xls-download/'
driver.get(url)
time.sleep(1)
file_link = driver.find_element_by_xpath('//*[@id="table-files"]/tbody/tr[1]/td[5]/a[1]')
file_link.click()
Run Code Online (Sandbox Code Playgroud)
该脚本有效地将文件下载到我的下载文件夹中。我尝试过在方法之前和之后放置一个StringIO()or流,并读取与此类似的对象:BytesIO()click()
file_object …Run Code Online (Sandbox Code Playgroud) 一般集群信息:
我正在尝试让kube-prometheus-stack舵图发挥作用。这似乎对大多数目标都有效,但是,某些目标保持不变,如下面的屏幕截图所示。

有什么建议吗?我如何获得kube-etcd并kube-controller-manager通过kube-scheduler进行监控Prometheus?
我部署了此处提到的 Helm Chart ,并应用了此处的建议来让 kube-proxy 受监控Prometheus。
预先感谢您的任何帮助!
编辑1:
- job_name: monitoring/my-stack-kube-prometheus-s-kube-controller-manager/0
honor_timestamps: true
scrape_interval: 30s
scrape_timeout: 10s
metrics_path: /metrics
scheme: http
bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
relabel_configs:
- source_labels: [__meta_kubernetes_service_label_app]
separator: ;
regex: kube-prometheus-stack-kube-controller-manager
replacement: $1
action: keep
- source_labels: [__meta_kubernetes_service_label_release]
separator: ;
regex: my-stack
replacement: $1
action: keep
- source_labels: [__meta_kubernetes_endpoint_port_name] …Run Code Online (Sandbox Code Playgroud) kubernetes prometheus kubernetes-helm kube-controller-manager kube-scheduler
我在 ruby 中有一个 webscraper,它使用这个来分析证书:
http = Net::HTTP.new(http_endpoint.host, http_endpoint.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
http.start do |h|
@cert = h.peer_cert
end
Run Code Online (Sandbox Code Playgroud)
是否可以使用 webmock 模拟此请求并在测试期间提供假证书?
我想将 django 与 aiohttp/asyncio 集成以进行异步编程和 websockets 处理。我知道 django 有 celery 和 django-channels 来分别执行异步任务和 websocket 服务器,但是 aiohttp 预先内置了异步和 websocket 服务器,我发现该框架在创建功能时比 celery/django 通道更具可扩展性和简单性到 webscraping(我不知道是否可以在 celery I 中进行 webscraping,还没有尝试过)。
并且它也完美支持异步和等待。
但我的问题是:我们如何在一个项目中同时实现 django 和 aiohttp?我们可以使用 aiohttp 服务器来代替使用 django 的开发服务器来为站点提供服务。
我们是否能够将 django 与 aiohttp 功能集成(例如让我们举个例子:如果我想将用户提交的输入的网站抓取到我的数据库中。我可以在获取网站并将以下网站发布到我的函数中时使用 await 调用吗?我的 django 数据库?或者将函数结果发布到另一个 django 函数?)
我想知道集成的缺点,如果有的话?
在发布您的答案时,请您发布一个示例实际集成示例,而不是通过 github 向我建议这些库。
我已经在使用puppeteer来抓取我的页面,但是,我还需要原始 html(基本上是页面源)。
我知道我可以获取原始 html,但也许 puppeteer 已将其保存在某个地方。
puppeteer 在 goto() 之后是否保存页面源代码?
我正在尝试使用 python 使用 selenium 进行网页抓取,但是每当我运行代码时,我都会收到错误
[4824:524:0818/154954.605:ERROR:ssl_client_socket_impl.cc(959)] handshake failed; returned -1, SSL error code 1, net_error -201
[4824:524:0818/154954.614:ERROR:ssl_client_socket_impl.cc(959)] handshake failed; returned -1, SSL error code 1, net_error -201
[4824:524:0818/154954.721:ERROR:ssl_client_socket_impl.cc(959)] handshake failed; returned -1, SSL error code 1, net_error -201
[4824:524:0818/154954.730:ERROR:ssl_client_socket_impl.cc(959)] handshake failed; returned -1, SSL error code 1, net_error -201
Empty DataFrame
Columns: [Rank, Country, Total Cases, New Cases, Deaths, New Deaths, Recovered, Active Cases, Critical]
Index: []
Run Code Online (Sandbox Code Playgroud)
我的代码我试图使用 selenium 访问名为 worldometer 的网站,并使用 pandas 从其网站上的表格中提取数据。我之前曾使用selenium访问其他网站,但当时没有给出错误。我使用的是python版本3.6.8
我尝试了安装 OpenSSl 等修复程序,但没有安装我还尝试了其他修复程序,例如添加 --ignore-certificate-errors 和 --ignore-ssl-errors …
python selenium web-scraping selenium-chromedriver selenium-webdriver
这篇文章与这篇文章非常相似:使用 selenium 和 python 在鼠标悬停后弹出时提取数据
但我无法找到我想要的答案。
我正在尝试抓取与此非常相似的传单地图:https://leafletjs.com/examples/choropleth/,理想情况下,我想下载将鼠标移到多边形上后出现的所有信息:
原始帖子循环遍历每个圆元素,我想对每个多边形执行相同的操作。
代码试验:
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
driver = webdriver.Chrome
driver.get("https://leafletjs.com/examples/choropleth/")
timeout = 1000
explicit_wait30 = WebDriverWait(driver, 30)
try:
# Wait for all circles to load
poli = explicit_wait30.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, '.leaflet-interactive')))
except TimeoutException:
driver.refresh()
data = []
i=1
for circle in poli:
i+=1
# Execute mouseover on the element
driver.execute_script("const mouseoverEvent = new Event('mouseover');arguments[0].dispatchEvent(mouseoverEvent)", poli)
# Wait for the data to appear …Run Code Online (Sandbox Code Playgroud) python ×4
javascript ×3
selenium ×3
jquery ×2
aiohttp ×1
ajax ×1
asynchronous ×1
dart ×1
django ×1
heroku ×1
html ×1
kubernetes ×1
leaflet ×1
pandas ×1
prometheus ×1
puppeteer ×1
ruby ×1
safari ×1
watir ×1
web-scraping ×1
webmock ×1