我正在尝试将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
我想创建一个类,并将其用于网络抓取,例如Google。它很容易禁止web-scrappers,因此我将为每个请求更改用户代理和代理。
答案 0 :(得分:0)
我希望您从目标网站获得502 。
require 'open-uri'
@src = open("http://google.com",
"User-Agent"=> 'Agent',
proxy_http_basic_authentication: [
"http://185.118.66.88:16506", "user", "password"]).read
#⇒ OpenURI::HTTPError: 407 Proxy Authentication Required
这意味着一切都按预期进行。你对Nokogiri的尝试需要两个右括号才能正常工作,但你最好从简单open
开始工作,Nokogiri仍然依赖它。