web-dev-qa-db-ja.com

MechanizeのカスタムユーザーエージェントをRails

たとえば、agent.user_agent_alias = 'Linux Mozilla'を設定することで使用できる事前定義されたエイリアスのセットがあることは知っていますが、Webクローラーを作成しているときに、独自のユーザーエージェントを設定したい場合はどうすればよいですか?私がインデックスを作成しているサイトのために、それを特定します。 Googlebotのように。

User_agentメソッドがあるようですが、その機能に関するドキュメントが見つからないようです。

27
Bashar Abdullah

エイリアスからユーザーエージェントを設定できます

a = Mechanize.new
a.user_agent_alias = 'Mac Safari'

使用可能なエイリアスは、AGENT_ALIASES定数に格納されます。

p Mechanize::AGENT_ALIASES

それ以外の場合は、#user_agentを使用してカスタムユーザーエージェントを設定します。

a = Mechanize.new
a.user_agent = 'Custom agent'
59
Simone Carletti

Mechanizeにランダムなユーザーエージェントを設定する方法を探していたので、結局これを行いました。

a = Mechanize.new do |agent|
  agent.user_agent_alias = (Mechanize::AGENT_ALIASES.keys - ['Mechanize']).sample
end
6
itayad

@Arkhitechによって返信されたように、今あなたはしたいと思うでしょう:

  agt = Mechanize.new 
  agt.agent.user_agent = Mechanize::AGENT_ALIASES[(Mechanize::AGENT_ALIASES.keys - ['Mechanize']).sample] 

user_agent_aliasはもう利用できません。

1
Andrew

新しいエージェントを取得するためだけに、それは機械化されていません

Mechanize::AGENT_ALIASES[(Mechanize::AGENT_ALIASES.keys - ['Mechanize']).sample]
0
Tim Kretschmer