- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Ubuntu Server 17.04。
我正在尝试将我的代理设置为 selenium。但它不起作用。我正在使用 https://stormproxies.com/ 的代理.基本上只有我允许的 ip 才会被允许拥有代理,然后我必须使用他们给我的 ip 来访问它。所以基本上它不是这样的 "ip:port@user:pass"。假设这是我正在使用的代理 ip
例子: https://123.123.123.123:13028
代理工作正常...因为我在 scrapy 中使用了它。
但不是在 selenium 中工作..我已经尝试了我找到的所有示例,但它给了我各种错误。我在想是因为这些例子已经过时了……也许吧。
我的 selenium 及其所有最新信息。我已将 geckodriver 设置为路径......以及所有内容。如果我不添加代理,Selenium 工作正常。
这些是我为所有人使用的主要进口商品。
from selenium import webdriver
from selenium.webdriver.common.proxy import *
from pyvirtualdisplay import Display
这些都是我试过的脚本。
第一个例子 它没有给我任何错误,但它没有连接到代理。当我尝试获取“https://whatismyipaddress.com”中的 ip 时,我得到了我的真实 ip,而不是代理
display = Display(visible=0, size=(1920, 1080)).start()
myProxy = "https://123.123.123.123:13028"
proxy = Proxy({
'proxyType': ProxyType.MANUAL,
'httpProxy': myProxy,
'ftpProxy': myProxy,
'sslProxy': myProxy,
'noProxy': None
})
browser = webdriver.Firefox()
browser.get("https://whatismyipaddress.com/")
第二个例子 - 它给我这个错误:WebDriverException: Message: Process unexpectedly closed with status: 1
proxies = "123.123.123.123:13028"
prox = Proxy()
prox.proxy_type = ProxyType.MANUAL
prox.http_proxy = proxies
prox.socks_proxy = proxies
prox.ssl_proxy = proxies
capabilities = webdriver.DesiredCapabilities.FIREFOX
prox.add_to_capabilities(capabilities)
driver = webdriver.Firefox(capabilities=capabilities)
第三个例子 - 它给我这个错误:WebDriverException: Message: Process unexpectedly closed with status: 1
PROXY_PORT = '13028'
PROXY_HOST = '123.123.123.123'
fp = webdriver.FirefoxProfile()
print PROXY_PORT
print PROXY_HOST
fp.set_preference("network.proxy.type", 1)
fp.set_preference("network.proxy.http", PROXY_HOST)
fp.set_preference("network.proxy.http_port", int(PROXY_PORT))
fp.set_preference("network.proxy.https", PROXY_HOST)
fp.set_preference("network.proxy.https_port", int(PROXY_PORT))
fp.set_preference("network.proxy.ssl", PROXY_HOST)
fp.set_preference("network.proxy.ssl_port", int(PROXY_PORT))
fp.set_preference("network.proxy.ftp", PROXY_HOST)
fp.set_preference("network.proxy.ftp_port", int(PROXY_PORT))
fp.set_preference("network.proxy.socks", PROXY_HOST)
fp.set_preference("network.proxy.socks_port", int(PROXY_PORT))
fp.set_preference("general.useragent.override",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/7046A194A")
fp.update_preferences()
driver = webdriver.Firefox(firefox_profile=fp)
第四个例子 - 它给了我这个错误:InvalidArgumentException: Message: null is not an array
PROXY = "123.123.123.123:13028"
webdriver.DesiredCapabilities.FIREFOX['proxy'] = {
"httpProxy": PROXY,
"ftpProxy": PROXY,
"sslProxy": PROXY,
"noProxy": None,
"proxyType": "MANUAL",
}
driver = webdriver.Firefox()
driver.get('http://www.whatsmyip.org/')
我也用过这个例子:
第五个例子 - 它给我这个错误:WebDriverException: Message: Process unexpectedly closed with status: 1
ProxyHost = "123.123.123.123"
ProxyPort = "13028"
def ChangeProxy(ProxyHost, ProxyPort):
"Define Firefox Profile with you ProxyHost and ProxyPort"
profile = webdriver.FirefoxProfile()
profile.set_preference("network.proxy.type", 1)
profile.set_preference("network.proxy.http", ProxyHost)
profile.set_preference("network.proxy.http_port", int(ProxyPort))
profile.update_preferences()
return webdriver.Firefox(firefox_profile=profile)
def FixProxy():
# ""Reset Firefox Profile""
profile = webdriver.FirefoxProfile()
profile.set_preference("network.proxy.type", 0)
return webdriver.Firefox(firefox_profile=profile)
driver = ChangeProxy(ProxyHost, ProxyPort)
driver.get("http://whatismyipaddress.com")
time.sleep(5)
driver = FixProxy()
driver.get("http://whatismyipaddress.com")
最佳答案
你只需要在初始化驱动时添加 firefox_options 元素即可。
确保您正确地(显然)导入了代理端
from selenium.webdriver.common.proxy import Proxy, ProxyType
然后像这样初始化你的驱动
options = Options()
options.add_argument("--headless")
ProxyHost = "x.x.x.x"
ProxyPort = "8118"
def SetProxy(ProxyHost ,ProxyPort):
profile = webdriver.FirefoxProfile()
profile.set_preference("network.proxy.type", 1)
profile.set_preference("network.proxy.http", ProxyHost )
profile.set_preference("network.proxy.http_port", int(ProxyPort))
profile.update_preferences()
return webdriver.Firefox(firefox_profile=profile, firefox_options=options)
try:
driver = SetProxy(ProxyHost ,ProxyPort)
driver.get("http://x.x.x.x")
print(driver.page_source)
driver.close()
except:
traceback.print_exc()
driver.close()
关于python-2.7 - selenium firefox 中的 python 代理 headless 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48113322/
我想做的是让 JTextPane 在 JPanel 中占用尽可能多的空间。对于我使用的 UpdateInfoPanel: public class UpdateInfoPanel extends JP
我在 JPanel 中有一个 JTextArea,我想将其与 JScrollPane 一起使用。我正在使用 GridBagLayout。当我运行它时,框架似乎为 JScrollPane 腾出了空间,但
我想在 xcode 中实现以下功能。 我有一个 View Controller 。在这个 UIViewController 中,我有一个 UITabBar。它们下面是一个 UIView。将 UITab
有谁知道Firebird 2.5有没有类似于SQL中“STUFF”函数的功能? 我有一个包含父用户记录的表,另一个表包含与父相关的子用户记录。我希望能够提取用户拥有的“ROLES”的逗号分隔字符串,而
我想使用 JSON 作为 mirth channel 的输入和输出,例如详细信息保存在数据库中或创建 HL7 消息。 简而言之,输入为 JSON 解析它并输出为任何格式。 最佳答案 var objec
通常我会使用 R 并执行 merge.by,但这个文件似乎太大了,部门中的任何一台计算机都无法处理它! (任何从事遗传学工作的人的附加信息)本质上,插补似乎删除了 snp ID 的 rs 数字,我只剩
我有一个以前可能被问过的问题,但我很难找到正确的描述。我希望有人能帮助我。 在下面的代码中,我设置了varprice,我想添加javascript变量accu_id以通过rails在我的数据库中查找记
我有一个简单的 SVG 文件,在 Firefox 中可以正常查看 - 它的一些包装文本使用 foreignObject 包含一些 HTML - 文本包装在 div 中:
所以我正在为学校编写一个 Ruby 程序,如果某个值是 1 或 3,则将 bool 值更改为 true,如果是 0 或 2,则更改为 false。由于我有 Java 背景,所以我认为这段代码应该有效:
我做了什么: 我在这些账户之间创建了 VPC 对等连接 互联网网关也连接到每个 VPC 还配置了路由表(以允许来自双方的流量) 情况1: 当这两个 VPC 在同一个账户中时,我成功测试了从另一个 La
我有一个名为 contacts 的表: user_id contact_id 10294 10295 10294 10293 10293 10294 102
我正在使用 Magento 中的新模板。为避免重复代码,我想为每个产品预览使用相同的子模板。 特别是我做了这样一个展示: $products = Mage::getModel('catalog/pro
“for”是否总是检查协议(protocol)中定义的每个函数中第一个参数的类型? 编辑(改写): 当协议(protocol)方法只有一个参数时,根据该单个参数的类型(直接或任意)找到实现。当协议(p
我想从我的 PHP 代码中调用 JavaScript 函数。我通过使用以下方法实现了这一点: echo ' drawChart($id); '; 这工作正常,但我想从我的 PHP 代码中获取数据,我使
这个问题已经有答案了: Event binding on dynamically created elements? (23 个回答) 已关闭 5 年前。 我有一个动态表单,我想在其中附加一些其他 h
我正在尝试找到一种解决方案,以在 componentDidMount 中的映射项上使用 setState。 我正在使用 GraphQL连同 Gatsby返回许多 data 项目,但要求在特定的 pat
我在 ScrollView 中有一个 View 。只要用户按住该 View ,我想每 80 毫秒调用一次方法。这是我已经实现的: final Runnable vibrate = new Runnab
我用 jni 开发了一个 android 应用程序。我在 GetStringUTFChars 的 dvmDecodeIndirectRef 中得到了一个 dvmabort。我只中止了一次。 为什么会这
当我到达我的 Activity 时,我调用 FragmentPagerAdapter 来处理我的不同选项卡。在我的一个选项卡中,我想显示一个 RecyclerView,但他从未出现过,有了断点,我看到
当我按下 Activity 中的按钮时,会弹出一个 DialogFragment。在对话框 fragment 中,有一个看起来像普通 ListView 的 RecyclerView。 我想要的行为是当
我是一名优秀的程序员,十分优秀!