Pythonのscrapy爬虫フレーム-Rule


説明:Ruleは、抽出リンクを定義するルールです.上の2つのルールは、リストページの各ページングページと詳細ページに対応しています.キーはrestrict_を介してxpathは、次に登るリンクを抽出するためにページの特定の部分だけを限定する.
follow=False(フォローしない)は、トップページのルールに合致するurlのみを抽出し、これらのurlページデータを取得し、callbackはfollow=True(フォローアップリンク)を解析し、二次urlページでルールに合致するurlを探し続け、全局をスクロールし終わるまでループします.
Rule(LinkExtractor(allow=(r'https://www.23us.so/top/lastupdate_'),), follow=True),
Rule(LinkExtractor(allow=(r'\d+/index.html'),deny=(r'https://www.23us.so/top/postdate_')),callback='parse_item', follow=True),
        

3.CrawlSpider ScrapyベースのSpiderでは、Spiderクラスについて簡単に説明します.Spiderは基本的に多くのことをすることができますが、もしあなたが知乎や簡書全駅に登りたいなら、もっと強い武器が必要かもしれません.CrawlSpiderはSpiderに基づいているが,全局的に這い出すために生まれたと言える.
簡単な説明
CrawlSpiderは、特定のルールを持つWebサイトでよく使われる爬虫類で、Spiderに基づいていくつかの独特な属性を持っています.
allow:ここではreフィルタリングを使っています.私たちは実はstartです.urlsには、私たちが一致した具体的なリンクの下の内容が追加されています.LinkExtractor:だから名前はリンクのフィルタで、まず私たちが登る必要があるリンクをフィルタします.deny:このパラメータは上のパラメータと逆になりたくて、私たちが登りたくないリンクを定義します.follow:デフォルトはfalse、爬取、start_urlが一致するurl.Trueなら、ページの内容をすべてstart_urlsの先頭のurl.  restrict_xpaths:xpath式を使用して、allowと共同でリンクをフィルタします.もう一つ似たようなrestrict_css callback:抽出可能なurlを取得した後、実行する方法を定義し、各リンクのresponseコンテンツ(つまりWebコンテンツ)に送信します.ruleはcallbackの有無にかかわらず、同じ_parse_response関数は処理しますが、followとcallback’’’’があるかどうかを判断します.
# -*- coding: utf-8 -*-
import scrapy
from scrapy.spiders.crawl import Rule,CrawlSpider
from scrapy.linkextractors import LinkExtractor
class SsSpider(CrawlSpider):
    name = 'ss'
    # allowed_domains = ['toscrape.com']
    start_urls = ['https://www.23us.so/']
    #      
    rules = [
   #  Rule      URL
        Rule(LinkExtractor(allow=(r'https://www.23us.so/top/lastupdate_'),), follow=True),
        Rule(LinkExtractor(allow=(r'\d+/index.html'),deny=(r'https://www.23us.so/top/postdate_')),callback='parse_item', follow=True),
     
    ]
    def parse_item(self, response):
        print(response.url)
        name = response.xpath("//div[@id='a_main']/div[@class='bdsub']/dl/dd[1]/h1/text()").extract()
        print(name)