2015-01-04 3 views
2

코드를 추출하려고 시도했을 때 ROBOTS 메타 태그가 반환되고 Mechanize를 사용하려고 시도 할 때도 계속해서이를 수행하는 웹 사이트가 있습니다. 예를 들면 다음과 같습니다.로봇이 무시하도록 설정되어 있음에도 불구하고 robot.txt를 반환합니다.

헤더 설정 및 다른 핸들 설정을 시도했지만 ROBOTS 메타 태그가 아닌 응답을받지 못했습니다.

도움을 주시면 감사하겠습니다.

편집 :

아래에 제안 된 헤더를 시도하는

import mechanize 
url = "http://myanimelist.net/anime.php?letter=B" 

br = mechanize.Browser() 
br.set_handle_robots(False) 
br.addheaders=[('User-Agent', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36  (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'), 
     ('Host', 'myanimelist.net'), 
     ('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'), 
     ('Accept-Encoding', 'gzip, deflate, sdch'), 
     ('Accept-Language', 'en-US,en;q=0.8,ru;q=0.6'), 
     ('Cache-Control', 'max-age=0'), 
     ('Connection', 'keep-alive')] 
br.open(url) 
response = br.response().read() 
print response 

나는 여전히 같은 로봇 메타 태그를 얻을. 헤더를 잘못 추가 했습니까? 아니면 단순히 보안 문자에만 매달렸습니까?

감사합니다. 고맙습니다.

답변

1

는 지금까지 내가 set_handle_robots()을 이해에만 robots.txt에 나와있는 규칙을 다음에 관한 것입니다 : 당신은, 그런데, 존중하고 좋은 웹 스크래핑 시민이어야한다

def set_handle_robots(self, handle): 
    """Set whether to observe rules from robots.txt.""" 

.


그들은 웹 스크래핑에 대해 매우 엄격합니다. captcha 뒤에 쉽게 설정되어 있습니다. 조심하십시오. 참고로, 그들은 고급 Bot ProtectionIncapsula에 의해 보호됩니다

고급 클라이언트 분류 기술, 크라우드 소싱 및 평판 기반 기술을 사용하여, Incapsula는 "좋은" 와 "나쁜"봇 트래픽을 구분합니다. 이렇게하면 검색 엔진 및 기타 합법적 인 스캐너와 스패머가 서버에 과부하를 걸고 콘텐츠를 훔치고 검색 엔진 및 기타 합법적 인 서비스가 귀하의 웹 사이트에 자유롭게 액세스 할 수있게하면서 스크래퍼, 취약성 을 차단할 수 있습니다.

"Terms of Use"에서 또 다른 "참고로"중요한 인용 : 당신은 "로봇", "스파이더", "오프라인 독자, 제한없이 포함하여 모든 자동화 된 시스템을 사용하거나 실행하지 않을 것에 동의합니다

, "등을 사용하는 경우 은 일반적인 온라인 웹 브라우저를 사용하여 기간 내에 사람이 합리적으로 생성 할 수있는 회사 서버보다 많은 요청 메시지를 에게 전송하는 방식으로 서비스에 액세스하며 사용자는 에 동의합니다 사용할 수있는 콘텐츠를 집계하거나 대조하지 않습니다. 다른 곳에서 사용하려면 서비스를 사용하십시오. 또한 귀하는 의 개인 정보 (계정 또는 의 프로파일 이름 포함)를 본 서비스에서 수령하지 않으며 상업적 청탁 목적으로 서비스가 제공 한 통신 시스템 을 사용하지 않을 것에 동의합니다.

내 실제 대답은 다음과 같습니다. official API이 있으면 사용하십시오. 법적 측면을 유지하십시오.