Google chrome extension 加载ChromeDriver扩展或代理ChromeDriver和Elixir

Google chrome extension 加载ChromeDriver扩展或代理ChromeDriver和Elixir,google-chrome-extension,elixir,selenium-chromedriver,phoenix-framework,hound,Google Chrome Extension,Elixir,Selenium Chromedriver,Phoenix Framework,Hound,我正在写一个网络刮板,我试图代理,但不太明白如何在长生不老药 我正在用猎犬在一个无头的镀铬驱动上奔跑。我通过购买了一些代理IP,它们提供了chrome扩展和基于用户/密码的代理服务器 webscraper操作由一个GenServer组成,它表示用户正在抓取web。应用程序没有前端,它接受通过我在电报上构建的bot发送给它的命令,因此当用户发送登录命令时,例如,它会触发GS的登录功能 此时,GenServer将使用Hound.change_session_将ChromeDriver会话更改为/2,

我正在写一个网络刮板,我试图代理,但不太明白如何在长生不老药

我正在用猎犬在一个无头的镀铬驱动上奔跑。我通过购买了一些代理IP,它们提供了chrome扩展和基于用户/密码的代理服务器

webscraper操作由一个GenServer组成,它表示用户正在抓取web。应用程序没有前端,它接受通过我在电报上构建的bot发送给它的命令,因此当用户发送登录命令时,例如,它会触发GS的登录功能

此时,GenServer将使用Hound.change_session_将ChromeDriver会话更改为/2,然后用户登录

这非常有效,但现在我想通过用户名和密码通过代理服务器发送每个请求。当更改与Hound的会话时,它也允许设置chromeOptions

ua = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36"
change_session_to(String.to_atom(account.username), %{browserName: "chrome", chromeOptions: %{"args" => ["--user-agent=#{ua}", "--proxy-server=http://user:password@proxy.luminati.io:22225"]}})
navigate_to "https://www.website.com/"
我尝试过的另一件事是加载luminati的ChromeExtension,我可以使用它来代理通过的流量,但我无法为每个会话加载扩展。我下载了打包的CRM chrome扩展,并将其放在我的priv文件夹中。当会话加载时,它似乎很好地加载了用户代理,但扩展从未启动。当我尝试加载扩展时,我没有无头运行

ua = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36"
priv_dir = :code.priv_dir(:boost_buddy)
change_session_to(String.to_atom(account.username), %{browserName: "chrome", 
chromeOptions: %{"extensions" => ['#{priv_dir}/luminati/3.2_1'], "args" => ["-
-user-agent=#{ua}", "--proxy-server=http://user:password@proxy.luminati.io:22225"]}})
navigate_to "https://www.website.com/"
有没有人有使用chrome driver和Elixir的经验?使用Ruby和Java设置扩展通常没有问题。

-1因为这是谷歌搜索“chrome headless extension”的最佳结果

关于通过代理发送每个请求,我认为您要么需要自己与chrome驱动程序接口(劫持hound),要么跳过hound,直接或通过selenium网格使用chrome

我认为这个问题源于hound将启动一个chrome实例,其中将定义代理设置。使用该代理完成进一步的请求


因此,为了实现不同会话的多个代理连接,您要么需要一种通过导航步骤设置它们的方法(访问一个代理网站,然后作为硬代理),要么使用不同的浏览器实例(尽管我可能错了,也许有一种更简单的代理请求的方法)

-1因为我认为我是在询问如何梳理代理并希望同时加载扩展。我说我想使用chromeOptions
--proxy server
arg与代理建立一个会话,但它不起作用。作为最后手段,我尝试加载一个扩展,该扩展将在常规的Chrome(而不是headless)会话中设置代理,但仍然失败。我以前在Ruby中做过这件事,并试图用Elixir来做。事实上,你没有提到你在非headless模式下尝试过扩展,你最后说在Ruby和java中它只是工作——而实际上在headless中你根本无法加载扩展,所以你应该得到另一个-1,因为没有做出区分