ホームページ  >  記事  >  ウェブフロントエンド  >  CSS セレクター フィールドの解析を実装する方法

CSS セレクター フィールドの解析を実装する方法

小云云
小云云オリジナル
2018-02-02 10:30:161799ブラウズ

上で学んだ基本的な CSS 構文の知識に基づいて、フィールド解析を実装しましょう。まず、タイトルを解析します。 Web 開発者ツールを開き、タイトルに対応するソース コードを見つけます。この記事では、フィールド解析を実装するための CSS セレクターに関する情報を主に紹介します。必要な方は参考にしていただければ幸いです

ので、デバッグ用に Scrapy シェルを開いてみました。

しかし、

のようなタグが不要な場合はどうすればよいでしょうか? この場合、CSS セレクターで疑似クラス メソッドを使用する必要があります。次のように。

p class="entry-header"

2 つのコロンに注意してください。 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従業員(従業員)テーブルとユーザーテーブル関連フィールド分析

以上がCSS セレクター フィールドの解析を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。