Python scrapy 소설 코드 추출 사례 상세 설명

scrapy 는 현재 python 에서 사용 하 는 가장 광범 위 한 파충류 프레임 워 크 입 니 다.
구조 도 는 다음 과 같다.

설명:
  • Scrapy Engine(엔진):Spider,ItemPipeline,Downloader,Scheduler 중간의 통신,신호,데이터 전달 등 을 책임 집 니 다
  • Scheduler(스케줄 러):엔진 이 보 낸 Request 요청 을 받 아들 이 고 일정한 방식 으로 정리 하고 배열 하 며 엔진 이 필요 할 때 엔진 에 반납 합 니 다
  • Downloader(다운로드 기):Scrapy Engine(엔진)이 보 낸 모든 Requests 요청 을 다운로드 하고 받 은 Responses 를 Scrapy Engine(엔진)에 돌려 주 며 엔진 을 Spider 에 맡 깁 니 다
  • Spider(파충류):모든 응답 을 처리 하고 그 중에서 데 이 터 를 분석 하고 추출 하 며 Item 필드 에 필요 한 데 이 터 를 얻 으 며 따라 가 야 할 URL 을 엔진 에 제출 하고 Scheduler(스케줄 러)에 다시 들 어 갑 니 다
  • Item Pipeline(파이프):Spider 에서 얻 은 Item 을 처리 하고 후기 처리(상세 분석,여과,저장 등)를 하 는 곳 입 니 다
  • Downloader Middlewares(미들웨어 다운로드):다운로드 기능 을 확장 할 수 있 는 구성 요소 로 사용 할 수 있 습 니 다.Spider Middlewares(Spider 중간 부품):엔진 과 Spider 중간 통신 을 자체 적 으로 확장 하고 조작 할 수 있 는 기능 구성 요소(예 를 들 어 Spider 에 들 어 가 는 Responses)로 이해 할 수 있 습 니 다.Spider 에서 나 간 Requests
  • 하나.설치 하 다.
    pip install Twisted.whl
    pip install Scrapy
    Twisted 버 전 은 설 치 된 python 과 대응 해 야 합 니 다.https://jingyan.baidu.com/article/1709ad8027be404634c4f0e8.html
    둘.코드
    이 인 스 턴 스 는 xpaths 로 페이지 데 이 터 를 분석 합 니 다.
    시 프 트 를 누 르 고-오른쪽 단 추 를 누 르 고-여기 서 명령 창 을 엽 니 다.
    scrapy startproject qiushibaike 생 성 항목 을 입력 하 십시오.
    scrapy genspiderqiushibaike 를 입력 하여 파충 류 를 만 듭 니 다.
    1>구조

    2>qiushibaike.py 파충류 파일
    
    import scrapy
    from scrapy.linkextractors import LinkExtractor
    from scrapy.spiders.crawl import Rule, CrawlSpider
    
    class BaiduSpider(CrawlSpider):
      name = 'qiushibaike'
      allowed_domains = ['qiushibaike.com']
      start_urls = ['https://www.qiushibaike.com/text/']#    
    #        
      rules= (
        Rule(LinkExtractor(restrict_xpaths=r'//a[@class="contentHerf"]'),callback='parse_item',follow=True),
        Rule(LinkExtractor(restrict_xpaths=r'//ul[@class="pagination"]/li/a'),follow=True)
      )
    
      def parse_item(self, response):
        title=response.xpath('//h1[@class="article-title"]/text()').extract_first().strip() #  
        time=response.xpath(' //span[@class="stats-time"]/text()').extract_first().strip() #    
        content=response.xpath('//div[@class="content"]/text()').extract_first().replace('  ','
    ') # score=response.xpath('//i[@class="number"]/text()').extract_first().strip() # yield({"title":title,"content":content,"time":time,"score":score});
    3>pipelines.py 데이터 파이프[코드]클래스 QiushibaikePipeline:
    
    class QiushibaikePipeline:
      def open_spider(self,spider):#       
        self.f=open("xiaoshuo.txt","w",encoding='utf-8')
      def process_item(self, item, spider):
        info=item.get("title")+"
    "+ item.get("time")+" "+item.get("score")+"
    "+ item.get("content")+'
    ' self.f.write(info+"
    ") self.f.flush() def close_spider(self,spider):# self.f.close()
    4>settings.py
    ZhonghengPipeline 오픈
    
    ITEM_PIPELINES = {
      'qiushibaike.pipelines.QiushibaikePipeline': 300,
    }
    5>0main.py 실행
    
    from scrapy.cmdline import execute
    execute('scrapy crawl qiushibaike'.split())
    6>결과:
    xiaohua.txt 생 성,다운로드 한 농담 문자 가 있 습 니 다.

    이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

    좋은 웹페이지 즐겨찾기