区切りを確認するために 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 件のコメント:
コメントを投稿