python 파충류 사용 scrapy 주의사항

학습 중에 문제가 생기면 그것들을 모두 수집하고 정리하면 장기간 보존한 후에도 경험담이다.편집자는 사람들에게 이렇게 오랫동안 scrapy 프레임워크를 이야기했는데 자신이 배운 정리와 친구들의 교류 피드백에서도 많은 아이디어를 쌓았다.몇몇 동료들이python에서 공부할 때 이것저것 잃어버리는 버릇이 있다고 생각하여 일부러 scrapy가python파충류 사용에서 주의해야 할 사항을 정리해 냈습니다. 모두 함께 보십시오.
1. 대량의 분포식 기어오르기가 필요하다면 Redis 데이터베이스 저장을 권장합니다. scrapy-redis를 설치하고 Redis 데이터베이스를 사용하여 scrapy가 원래 사용하던 대기열 구조(deque)를 대체하고 다른 데이터베이스 저장, 예를 들어 MySQL이나 MongoDB와 결합하면 기어오르기 효율이 크게 향상됩니다.그리고 그 자체의dupefilter.py는 requst의 리셋을 실행하고 redis의 set 데이터 구조를 사용합니다. settings 파일을 통해 정확하게 설정한 후 scrapy 파충류를 멈추더라도 다음에 다시 시작하면 자동으로 리셋할 수 있습니다.왜냐하면 리디스에 리퀘스트 정보가 저장되어 있기 때문이다.
2. 프록시 IP, Headers 헤더의 중간 요청 정보 처리와 관련될 때 중간부품 Middleware를 통해 실현할 수 있다.Spider 중간부품은 Scrapy의spider 처리 메커니즘에 개입된 갈고리 프레임워크로 Spiders에 전송된response와spider에서 발생하는 item과request를 처리하기 위해 코드를 추가할 수 있습니다.
3. settings 파일을 합리적으로 설정하려면 settings의 각종 설정을 숙련해야 한다.
4. def start_ 재정의 가능requests(self) 함수로 쿠키 정보를 불러옵니다. form 정보의 제출은scrapy로 합니다.FormRequest 및 scrapy.FormRequest.from_response 이 두 함수, scrapy.FormRequest.from_response는 자동으로form 데이터를 제출할 수 있습니다.
5. Scrapy+phantomJS를 사용합니다.scheduler에서 보내온 Request 대상을 요청하기 전에 미리 처리하면 headers,user_ 추가 가능에이전트, 그리고 쿠키 등 기능.그러나 중간부품을 통해 HtmlResponse 대상을 직접 되돌려주고 요청한 모듈을 생략하여response의 리셋 함수에 직접 던질 수도 있습니다.

class CustomMetaMiddleware(object):
  def process_request(self,request,spider):
    dcap = dict(DesiredCapabilities.PHANTOMJS)   
    dcap["phantomjs.page.settings.loadImages"] = False 
    dcap["phantomjs.page.settings.resourceTimeout"] = 10
    driver = webdriver.PhantomJS("D:xx\xx",desired_capabilities=dcap)
    driver.get(request.url)
    body = driver.page_source.encode('utf8')
    url = driver.current_url
    driver.quit()
    return HtmlResponse(request.url,body=body)
python 파충류 사용 scrapy 주의사항에 관한 이 글은 여기까지 소개되었습니다. 더 많은 관련 scrapy가python 파충류 사용 중 어떤 내용을 주의해야 하는지 저희 이전의 글을 검색하거나 아래의 관련 글을 계속 훑어보시기 바랍니다. 앞으로 많은 응원 부탁드립니다!

좋은 웹페이지 즐겨찾기