scrapyd 의 API 호출 방법 은 기억 하기 어렵 습 니까?파 이 썬 스 크 립 트 하나 로 쉽게 끝 낼 수 있 습 니 다.

5096 단어 PythonScrapy


  • scrapyd 공식 문서


  • http://scrapyd.readthedocs.io/en/stable/overview.html
    우선 스 크 라 피 드 가 무엇 인지 알 아 보 겠 습 니 다.
  • scrapyd 는 scrapy 파충 류 를 실행 하 는 서비스 프로그램 으로 http 명령 으로 파충 류 를 발표, 삭제, 시작, 정지 하 는 프로그램 을 지원 합 니 다.또한 scrapyd 는 여러 개의 파충 류 를 동시에 관리 할 수 있 고 파충류 마다 여러 가지 버 전 을 가 질 수 있다.

  • 왜 scrapyd 를 사용 합 니까?
  • 1. 파충류 의 소스 코드 가 보이 지 않도록 할 수 있다.
  • 2. 버 전 관리 가 있 습 니 다.
  • 3. 원 격 으로 시작, 정지, 삭제 할 수 있 습 니 다.

  • 어떻게 scrapyd 를 설치 합 니까?
  • 1. scrapyd 를 설치 하 는 데 주로 두 가지 설치 방식 이 있 습 니 다. pip install scrapyd (설 치 된 버 전 은 최신 버 전이 아 닐 수도 있 습 니 다)https://github.com/scrapy/scrapyd 원본 코드 를 다운로드 하고 python setup. py install 명령 을 실행 하여 설치 합 니 다
  • 2. scrapyd - deploy 를 설치 하 는 데 주로 두 가지 설치 방식 이 있 습 니 다. pip install scrapyd - client (설 치 된 버 전 은 최신 버 전이 아 닐 수도 있 습 니 다)http://github.com/scrapy/scrapyd-client 중하 원본 코드, python setup. py install 명령 을 실행 하여 설치 합 니 다.

  • scrapy 사용
  • 첫 번 째 단계: 서버 에서 scrapyd 를 시작 하고 scrapyd 명령 을 실행 하면 在这里插入图片描述 시작 에 성공 한 후 브 라 우 저 에서 서버 의 IP 와 기본 포트 번호 6800 을 통 해 접근 할 수 있 습 니 다. 화면 은 그림 과 같 습 니 다 scrapyd的API调用方法难记?一个Python脚本轻松搞定_第1张图片
  • 두 번 째 단계: 파충류 프로젝트 발표 부터 scrapyd
  • 우선 scrapy 파충류 의 scrapy. cfg scrapyd的API调用方法难记?一个Python脚本轻松搞定_第2张图片 를 설정 합 니 다.
    1. 먼저 url 앞의 주석 기 호 를 제거 합 니 다. url 은 scrapyd 서버 의 사이트 주소 입 니 다.
    2. 그리고 procject = tenCenter 는 프로젝트 이름 으로 마음대로 이름 을 지 을 수 있 습 니 다 .
    3. [deploy] 를 [deploy: 100] 으로 수정 하여 파충류 를 100 이라는 파충류 서버 에 발표 하고, 일반적으로 여러 대상 서버 에 파충류 가 동시에 발표 되 어야 할 때 사용 scrapyd的API调用方法难记?一个Python脚本轻松搞定_第3张图片 파충류 추가 명령 은 다음 과 같 습 니 다:
    Scrapyd-deploy  -p  --version 
    

    매개 변수 설명:
  • Target: deploy 뒤의 이름.
  • Project: 스스로 이름 을 정의 하 는 것 은 파충류 의 프로젝트 이름 과 무관 하 다.
  • Version: 버 전 번 호 를 사용자 정의 합 니 다. 쓰 지 않 으 면 기본 값 은 현재 시간 스탬프 입 니 다.scrapyd的API调用方法难记?一个Python脚本轻松搞定_第4张图片 발표 성공 후 브 라 우 저 인터페이스 에서 새로 고침 하면 새로 추 가 된 파충류 프로젝트
  • 를 볼 수 있 습 니 다.
    이상 scrapyd 공식 문서 에 설명 이 있 습 니 다. 불분명 한 경우 공식 문 서 를 보십시오.
    **
    포인트 가 왔 습 니 다. 다음은 scrapyd 가 제공 하 는 API 입 니 다.
    **
  • 파충류 퀘 스 트 시작:
  • curl http://localhost:6800/schedule.json -d project=myproject -d spider=spider_name
    
  • 파충류 임무 정지:
  • curl http://localhost:6800/cancel.json -d project=spider_name -d job=job_id
    
  • 서비스의 부하 상태 검사
  • curl http://localhost:6800/daemonstatus.json
    
  • 이 Scrapy 서버 에 올 린 항목 목록 가 져 오기
  • curl http://localhost:6800/listprojects.json
    

    * * 더 많은 API 는 홈 페이지 를 볼 수 있 습 니 다. * *https://scrapyd.readthedocs.io/en/latest/api.html

    사실 상기 기억 하기 어 려 운 API 는 간단 한 Python 스 크 립 트 하나만 있 으 면 됩 니 다.
    import requests
    
    class ScrapyApi(object):
    	def __init__(self):
    		self.ip = "localhost"
    		self.port = 6800
    		
    	#        
    	def schedule(self,project,spider):
    		self.url = "http://%s:%s/schedule.json"%(self.ip,self.port)
    		self.data = {
    			"project":project,
    			"spider":spider
    		}
    		return requests.post(url=self.url, data=self.data).json()
    	
    	#         
    	def cancel(self,project,job_id):
    		self.url = "http://%s:%s/cancel.json"%(self.ip,self.port)
    		self.data = {
    			"project":project,
    			"job_id":job_id
    		}
    		return requests.post(url = self.url, data=self.data).json()
    	
    	。。。
    
    if __name__=="__main__":
    	sa = ScrapydApi()
    	sa.schedule("   ","   ")
    	sa.cancel("   ","job_id")
    	。。。
    

    물론 다른 방법 도 있 습 니 다. 셸 스 크 립 트 도 좋 은 선택 이나 Python 의 os 모듈 입 니 다. os. system 을 사용 하면 셸 명령 을 직접 호출 할 수 있 고 쉽게 실현 할 수 있 습 니 다.자신 에 게 맞 는 방법 을 고 르 면 좋 을 것 같 아 요.

    좋은 웹페이지 즐겨찾기