我正在尝试将OpenURI与代理和用户代理字符串一起使用。我购买了代理列表,以便在我的网站中使用。如何在OpenURI上使用代理
下面是一个例子:
@src = open(url, "User-Agent"=> @agent,
:proxy_http_basic_authentication => [
"http://185.118.66.88:16506", "user", "password"]).read
这就造成:
!!! 502 Bad Gateway
我得到了一个免费代理,并用它和它的工作,所以我想这个问题可能是用户名或密码。
我试着从我卖给我的代理名单的公司那里得到的用户名和密码。
如果我尝试使用引入nokogiri我得到一个错误:
@src = Nokogiri::HTML(open(
"http://google.com",
:proxy_http_basic_authentication => [
"http://#{@proxy}", "user", "password"]
syntax error, unexpected keyword_rescue, expecting ')'
rescue Exception => e
我想创建一个类,并使用它的网页抓取,谷歌的实例。它很容易禁止网络抓取器,所以我会更改每个请求的用户代理和代理。
这不是一个Nokogiri问题,因为Nokogiri不关心HTML来自哪里。它只读取由OpenURI传递给它的流。问题在于通过Proxy和OpenURI连接到最终主机。 –
请阅读“[问]”和链接的页面。链接的页面将帮助您了解如何使用堆栈溢出。此外,“[mcve]”和链接页面将帮助您编写更有用的问题。您的代码示例在语法上不正确,也不会显示代码中的“rescue”,因此我们无法帮助诊断。 –
您无法编写通用刮板来在多个站点上使用。网站之间的HTML不够一致以允许这样做。 Google不会因为更改代理或用户代理设置而被愚弄;他们了解自动抓取如何非常好地工作。 –