>  기사  >  웹 프론트엔드  >  CSS 선택기 필드 구문 분석을 구현하는 방법

CSS 선택기 필드 구문 분석을 구현하는 방법

小云云
小云云원래의
2018-02-02 10:30:161748검색

위에서 배운 기본적인 CSS 구문 지식을 바탕으로 이제 필드 파싱을 구현해 보겠습니다. 먼저 제목을 분석합니다. 웹 개발자 도구를 열고 제목에 해당하는 소스 코드를 찾으세요. 이 글은 필드 파싱을 구현하기 위한 CSS 선택기 관련 정보를 주로 소개합니다. 혹시 도움이 되실 분들이 참고하시면 좋을 것 같습니다. 아래 h1 노드에서 찾아서 디버깅용으로 스크랩해두었습니다

그런데 4a249f0d628e2318394fd9b75b4636b1과 같은 태그를 원하지 않으면 어떻게 해야 하나요? 이 경우 CSS 선택기에서 의사 클래스 메서드를 사용해야 합니다. 아래 그림과 같습니다. p class="entry-header"

콜론 두 개에 주목하세요. CSS 선택자를 사용하는 것은 정말 편리합니다. 같은 방식으로 CSS를 사용하여 필드 구문 분석을 구현합니다. 코드는 다음과 같습니다

# -*- coding: utf-8 -*-  
import scrapy  
import re  
class JobboleSpider(scrapy.Spider):  
    name = 'jobbole'  
    allowed_domains = ['blog.jobbole.com']  
    start_urls = ['http://blog.jobbole.com/113549/']  
    def parse(self, response):  
        # title = response.xpath('//p[@class = "entry-header"]/h1/text()').extract()[0]  
        # create_date = response.xpath("//p[@class = 'entry-meta-hide-on-mobile']/text()").extract()[0].strip().replace("·","").strip()  
        # praise_numbers = response.xpath("//span[contains(@class,'vote-post-up')]/h10/text()").extract()[0]  
        # fav_nums = response.xpath("//span[contains(@class,'bookmark-btn')]/text()").extract()[0]  
        # match_re = re.match(".*?(\d+).*",fav_nums)  
        # if match_re:  
        #     fav_nums = match_re.group(1)  
        # comment_nums = response.xpath("//a[@href='#article-comment']/span").extract()[0]  
        # match_re = re.match(".*?(\d+).*", comment_nums)  
        # if match_re:  
        #     comment_nums = match_re.group(1)  
        # content = response.xpath("//p[@class='entry']").extract()[0]  
#通过CSS选择器提取字段  
        title = response.css(".entry-header h1::text").extract()[0]  
        create_date = response.css(".entry-meta-hide-on-mobile::text").extract()[0].strip().replace("·","").strip()  
        praise_numbers = response.css(".vote-post-up h10::text").extract()[0]  
        fav_nums = response.css("span.bookmark-btn::text").extract()[0]  
        match_re = re.match(".*?(\d+).*", fav_nums)  
        if match_re:  
            fav_nums = match_re.group(1)  
        comment_nums = response.css("a[href='#article-comment'] span::text").extract()[0]  
        match_re = re.match(".*?(\d+).*", comment_nums)  
        if match_re:  
            comment_nums = match_re.group(1)  
        content = response.css("p.entry").extract()[0]  
        tags = response.css("p.entry-meta-hide-on-mobile a::text").extract()[0]  
        pass

관련 추천 :

OpenERP 직원(employee) 테이블 및 사용자 테이블 관련 필드 분석

위 내용은 CSS 선택기 필드 구문 분석을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.