有没有一种简单的方法来设置机械化2.3的自定义头部?
我尝试了一个former solution,但得到:
$agent = Mechanize.new
$agent.pre_connect_hooks << lambda { |p|
p[:request]['Referer'] = 'https://wwws.mysite.com/cgi-bin/apps/Main'
}
# ./mech.rb:30:in `<main>': undefined method `pre_connect_hooks' for nil:NilClass (NoMethodError)发布于 2012-09-01 10:08:55
The docs说:
get(uri, parameters = [], referer = nil, headers = {}) { |page| ... }举个例子:
agent.get 'http://www.google.com/', [], agent.page.uri, {'foo' => 'bar'}或者,您可能会喜欢:
agent.request_headers = {'foo' => 'bar'}
agent.get url发布于 2012-04-13 01:53:30
你误解了你正在复制的代码。在示例中有一个换行符,但它在格式化中消失了,因为它没有标记为代码。$agent包含nil,因为您试图在初始化它之前使用它。您必须初始化对象,然后才能使用它。试着这样做:
$agent = Mechanize.new
$agent.pre_connect_hooks << lambda { |p| p[:request]['Referer'] = 'https://wwws.mysite.com/cgi-bin/apps/Main' }发布于 2012-04-12 21:34:31
对于这个问题,我注意到人们似乎使用:
page = agent.get("http://www.you.com/index_login/", :referer => "http://www.you.com/")顺便说一句,现在我测试了这个答案,似乎这不是我实际问题背后的问题:尽管我总是以yaml格式加载和保存完整的cookie jar,但每次访问我抓取的站点都需要再次浏览登录序列页面,甚至在第一次登录访问后的几秒钟后也是如此。但这当然会导致另一个问题。
https://stackoverflow.com/questions/10124224
复制相似问题