2021年3月7日日曜日

めも scrapy

区切りを確認するために scrapy shell のコマンド活用

scrapy shell http://knet-ore.blogspot.com

 response.css('h2 span::text').extract()
 response.css('h3 a::text').extract()
 response.css('div.post-body p::text').extract()

['2021年3月4日木曜日', '2021年2月28日日曜日', '2021年2月12日金曜日', '2020年12月12日土曜日', '2020年11月29日日曜日', '2020年11月27日金曜日', '2020年10月28日水曜日']

['めも', 'mqttで収集influxdbに集積grafanaで見る\u3000めも', 'bionicdog(ubuntu18.04)でADALM2000 scopyを使う', 'enju_leaf_13をFreeBSD 11.4-RELEASEにインストール', 'めも', 'めも', 'めも']

['\xa0https://gendai.ismedia.jp/articles/-/74636?page=10', ' ', '\xa0https://diyi0t.com/visualize-mqtt-data-with-influxdb-and-grafana/', 'ckermit', 'freebsdにenjuインストールするにもsolrのバージョンが', '\n', '\nJava SE / OpenJDK 8(Java9以上では動作しません)', '\nApache Solr 5.5 以上 (7.x系は未検証) ', ----------------------------------------------------------------, '人間は忘れやすい']

実際の作業

scrapy startproject tutorial2
cd tutorial2
scrapy genspider knet knet-ore.blogspot.com
cd tutorial2
ee items.py
cd spiders
ee knet.py

knet.pyの中身編集後

# -*- coding: utf-8 -*-
import scrapy
from tutorial2.items import Tutorial2Item

class KnetSpider(scrapy.Spider):
    name = 'knet'
    allowed_domains = ['knet-ore.blogspot.com']
    start_urls = ['http://knet-ore.blogspot.com/']

    def parse(self, response):
        for knet in response.css('div.date-outer'):
            item = Tutorial2Item()
            item['title'] = knet.css('h3 a::text').extract_first()
            item['body'] = knet.css('div.post-body p::text').extract_first()
            item['date'] = knet.css('h2 span::text').extract_first()
            yield item

items.pyの中身編集後

# -*- coding: utf-8 -*-

# Define here the models for your scraped items
#
# See documentation in:
# https://doc.scrapy.org/en/latest/topics/items.html

import scrapy


class Tutorial2Item(scrapy.Item):
    # define the fields for your item here like:
    # name = scrapy.Field()
    title = scrapy.Field()
    body = scrapy.Field()
    date = scrapy.Field()

0 件のコメント:

コメントを投稿