Python 프레임 워크 Scrapy는 잘 작동하지만 런타임에 스파이더를 구성하는 방법을 알 수 없습니다. 모든 구성이 나에게 "정적으로"만들어 져야한다고 생각합니다. 지독한 디자인 또는 나는 무엇인가 놓쳤다?Python Scrapy - 스크래퍼를 구성하는 일반적인 방법
예를 들어 어려운 초기화 루틴이 필요한 스파이더가 있습니다. 크롤링 용 HTTP 헤더 (쿠키, 사용자 에이전트 등)를 얻기 위해 자체 스크립트를 사용합니다. 로그인 한 사용자였습니다. 1 분에서 2 분 정도 소요됩니다. 그런 다음이 헤더를 모든 요청에 적용해야합니다.
지금 나는 __init__
거미의 방법에서 이것을한다. 하지만 거미의 생성자에서 User-Agent
을 설정할 수는 없습니다. custom_settings
은 클래스 변수로 설정해야합니다. 따라서 미들웨어를 사용하여 각 요청에 대해 사용자 에이전트를 설정해야합니다. 이것은 추한 솔루션입니다.
초기화 스파이더에 공통 패턴이 있습니까 - 어떤 종류의 spider factory
? 이 같은 매끄러운 :
class SpiderConfigurator:
def __init__():
...
def configureSpider(spider, environment):
...
spider.setMyCustomSettings(arg1, arg2)
...
environment.setMyCustomSettings(argName1, argValue1)
environment.setMyCustomSettings('User-Agent', 'my value')
당신이하고있는 일과 그 대신에하고 싶은 일에 대한 짧은 코드 예를 제공 할 수 있습니까? – pvg
[스크립트에서 치료 프로그램 실행] (https://docs.scrapy.org/en/latest/topics/practices.html#run-scrapy-from-a-script)에 체크 했습니까? –
@paultrmbrth 네, 이것이 내가 필요한 것 같습니다! 고맙습니다 –