2011-02-15 3 views
26

예를 들어 agent.user_agent_alias = 'Linux Mozilla'를 설정하여 사용할 수있는 사전 정의 된 별칭 집합을 알고 있지만 내 자신을 설정하고 싶다면 어떻게해야합니까? 사용자 에이전트, 내가 웹 크롤러를 작성하고 있으며, 색인을 생성하고있는 사이트에 대해 식별하고 싶습니다. Googlebot과 같습니다.Mechanize in Rails에 사용자 정의 사용자 에이전트를 설정하는 방법

user_agent 메소드가있는 것 같지만 기능에 대한 문서를 찾을 수없는 것 같습니다.

답변

55

당신은

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' 
+0

감사합니다. 나는 이것이 그럴 것이라고 생각했지만 확인을 찾을 수 없었다. –

5

내가 기계화에 대한 임의의 사용자 에이전트를 설정하는 방법을 찾고, 그래서 나는이 일을 결국 :

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

이'NoMethodError Exception : # 에 대한 정의되지 않은 메소드 user_agent_alias가 나타납니다. – jmoon90

+0

은 이어야합니다. a = Mechanize.new do | agent | agent.user_agent = Mechanize :: AGENT_ALIASES [(Mechanize :: AGENT_ALIASES.keys - [ 'Mechanize']). 샘플] end – Arkhitech

0

그냥 새로운 에이전트를하려면, 즉이 기계화되지

@Arkhitech로 대답으로
Mechanize::AGENT_ALIASES[(Mechanize::AGENT_ALIASES.keys - ['Mechanize']).sample] 
0

, 지금 당신이하고 싶은 것 :

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

user_agent_alias은 더 이상 사용할 수 없습니다.

관련 문제