pyspider 웹 페이지 찾기

4420 단어 파충류
파충류를 열다
pyspider
# pyspider
pyspider all &

아니면 그 애니메이션 사이트를 비교했을 때,pyspider의 가장 큰 장점은 디버깅이 매우 편리하다는 것이다. 다만 디버깅 속도가 앞의 속도를 얻지 못한다는 것이다
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
# Created on 2018-06-03 21:52:13
# Project: test

from pyspider.libs.base_handler import *


class Handler(BaseHandler):
    crawl_config = {
    }

    @every(minutes=24 * 60)
    def on_start(self):
        self.crawl('http://www.mmonly.cc/ktmh/hzw/list_34_1.html', callback=self.index_page)

    @config(age=10 * 24 * 60 * 60)
    def index_page(self, response):
        # 
        for each in response.doc('.title a').items():
            self.crawl(each.attr.href, callback=self.detail)
        # 
        url = response.doc('#pageNum > a:nth-last-child(2)').attr.href
        if url:
            self.crawl(url, callback=self.index_page) 

    @config(age=10 * 24 * 60 * 60)
    def detail(self, response):
        # 
        #print response.doc('#contbody > div > div > a > img').attr('src')
        self.crawl(response.url+'?time=1', callback=self.detail_page) 
        # 
        next_url = response.doc('#nl a').attr.href
        #print next_url
        #for each in response.doc('.pages a:last').items():
        if next_url != None and not next_url.endswith('##'):
            self.crawl(next_url, callback=self.detail)

    @config(priority=2)
    def detail_page(self, response):
        return {
            "img": response.doc('p img').attr('src')
        }

코드 단순 분석: - def on_start (self) 방법은 입구 코드입니다.웹 컨트롤러에서run 단추를 눌렀을 때 이 방법을 실행합니다. -self.crawl(url,callback=self.index_page) 이 방법은 API를 호출하여 새 추출 작업을 생성하는 것입니다. 이 작업은 추출 대기열에 추가됩니다. -def index_페이지(self,response) 이 방법은 Response 대상을 가져옵니다.response.doc는pyquery 대상의 확장 방법입니다.pyquery는 jQuery와 유사한 대상 선택기입니다. -def detail_페이지 (self,response) 가 결과 집합 대상을 되돌려줍니다.이 결과는 기본적으로resultdb 데이터베이스에 추가됩니다. (시작할 때 지정한 데이터베이스가 없으면 기본적으로 sqlite 데이터베이스를 호출합니다.너도 다시 쓸 수 있어on_result (self,result) 방법으로 저장 위치를 지정합니다.
더 많은 지식: - @every(minutes=24*60,seconds=0) 이 설정은 scheduler(스케줄러)on_start 방법은 매일 한 번 실행됩니다. - @config (age=10 * 24 * 60 * 60) 이 설정은 scheduler (스케줄러) 이request (요청) 기한이 10일이라는 것을 알려줍니다. 10일 안에 이 요청을 만나면 무시합니다.이 매개 변수도 self에 있을 수 있다.crawl(url,age=10*24*60*60) 및crawl_config에서 설정합니다. - @config (priority=2) 이것은 우선 순위 설정입니다.숫자가 클수록 먼저 실행한다.
다른 사람이 설정한 파충류 테스트 라이브러리:http://demo.pyspider.org/매개변수 문서 참조

좋은 웹페이지 즐겨찾기