2011-11-10 6 views
6

웹 사이트를 크롤링하려고합니다. 봇을 멈추게 할 정도로 정교합니다. 스팸이 멈춘 후 몇 가지 요청 만 허용하는 것입니다.테라피를 프레임 워크와 함께 사용하기

질문 1 : Scrapy가 중단되면 같은 지점에서 내 크롤링 프로세스를 다시 시작할 수 있습니다. 이 문제를 제거하기 위해, 나는 내 설정이

BOT_NAME = 'MOZILLA' 
BOT_VERSION = '7.0' 

SPIDER_MODULES = ['yp.spiders'] 
NEWSPIDER_MODULE = 'yp.spiders' 
DEFAULT_ITEM_CLASS = 'yp.items.YpItem' 
USER_AGENT = '%s/%s' % (BOT_NAME, BOT_VERSION) 

DOWNLOAD_DELAY = 0.25 
DUPEFILTER=True 
COOKIES_ENABLED=False 
RANDOMIZE_DOWNLOAD_DELAY=True 
SCHEDULER_ORDER='BFO' 

같은 파일 작성이 내 프로그램입니다 :

class ypSpider(CrawlSpider): 

    name = "yp" 


    start_urls = [ 
     SOME URL 

    ] 
    rules=(
     #These are some rules 
    ) 
    def parse_item(self, response): 
    #################################################################### 
    #cleaning the html page by removing scripts html tags  
    ####################################################### 
    hxs=HtmlXPathSelector(response) 

나는 HTTP 프록시를 쓸 수와 내가 가져올하여야한다 곳에 질문은 모든 관련 수업, 나는이 그룹 때문에 Scrapy를 처음 사용하는데 너무 많은 것을 배웠습니다. 이제는 "IP 회전 또는 토르를 사용하는 법"을 배우려고합니다.

우리 회원 중 한 사람이 제안 했으므로 저는 토르와 저는 시작했습니다. HTTP_PROXY를

로 설정하십시오.
set http_proxy=http://localhost:8118 

하지만 약간의 오차가 던지고는,

failure with no frames>: class 'twisted.internet.error.ConnectionRefusedError' Connection was refused by other side 10061: No connection could be made because the target machine actively refused it. 

그래서 나는 이제 오류가

failure with no frames>: class 'twisted.internet.error.ConnectionDone' connection was closed cleanly. 

나는 파이어 폭스 네트워크 설정을 확인한다

set http_proxy=http://localhost:9051 

에 HTTP_PROXY 변경 나는 어떤 HTTP 프록시도 볼 수 없지만 그 대신에 그 SO CKSV5에서 127.0.0.1:9051을 보여줍니다. (TOR 이전에는 프록시없이 작동합니다.) Score를 통해 TOR을 사용하는 방법을 아직 이해하지 못하고 있습니다. 내가 사용해야 할 TOR 번들과 방법은 무엇입니까? 난 Scrapy에서 IP를 회전

  • 사용하는 방법이 자체에서 서비스를 다시 시작하고 싶은 scrapy 크롤러가 어떤 이유로 (연결 실패)에 대한 응답하지 않는 경우 내 질문에 모두

    1. 해결 될 수 있기를 바랍니다
  • +1

    당신이'MOZILLA/7.0'보다 더 설득력 뭔가 사용자 에이전트 문자열을 설정 시도? 브라우저의 전체 사용자 에이전트 문자열을 사용해보십시오. http://httpbin.org/user-agent – Acorn

    답변

    4

    TOR 자체는 http 프록시가 아니며 포트 8118과 연결 거부 오류는 privoxy [1]이 (가) 제대로 실행되고 있지 않음을 나타냅니다. privoxy를 올바르게 설정 한 다음 환경 변수 http_proxy=http://localhost:8118을 사용하여 다시 시도하십시오.

    내가 성공적으로 치료와 함께 privoxy를 사용하여 TOR을 통해 크롤링을 완료했습니다.

    [1] http://www.privoxy.org/

    +3

    안녕 Rho 여기 귀하의 경험과 소스 코드를 알려주십시오. 그것은 우리에게 매우 흥미로울 수 있습니다. 미리 감사합니다. – lucab0ni

    +0

    @ imx51 프록시로 TOR을 사용하는 것에 대해 너무 많이 공유하지 않아도됩니다. 환경 변수를 설정하기 만하면됩니다. – Rolando