###■質問
複数URLからの抽出結果を出力したCSVファイルの行列が、抽出する度に変化して不安定です。出力前にこの行列を安定させる(=整列させる)ことは可能でしょうか?
※なお各行のレベルでデータの整合性は問題ないです。
※以下イメージをご参照ください。
【CSV出力結果イメージ】
1回目
| date | time | name |
| page2のA1 | page2のB1 | page2のC1 |
| page2のA2 | page2のB2 | page2のC2 |
| page2のA3 | page2のB3 | page2のC3 |
| page1のA1 | page1のB1 | page1のC1 |
| page1のA2 | page1のB2 | page1のC2 |
| page1のA3 | page1のB3 | page1のC3 |
2回目
| name | date | time |
| page1のC1 | page1のA1 | page1のB1 |
| page1のC2 | page1のA2 | page1のB2 |
| page1のC3 | page1のA3 | page1のB3 |
| page2のC1 | page2のA1 | page2のB1 |
| page2のC2 | page2のA2 | page2のB2 |
| page2のC3 | page2のA3 | page2のB3 |
ScrapyCommand
1$ scrapy crawl example_spider -o test01.csv
PythonScrapySpider
1class ExampleSpider(scrapy.Spider): 2 name = 'example_spider' 3 allowed_domains = ['example.com'] 4 start_urls = [ 5 'https://example.com/page1.html', 6 'https://example.com/page2.html' 7 ] 8 9 def start_requests(self): 10 for url in self.start_urls: 11 yield SplashRequest(url, self.parse, 12 args={'wait': 0.5}, 13 ) 14 def parse(self, response): 15 table_rows = response.xpath('//table/tbody/tr') 16 for table_row in table_rows: 17 item = TutorialItem() 18 19 item['date'] = table_row.xpath('td[3]/a/text()').extract_first() 20 item['time'] = table_row.xpath('td[4]/a/text()').extract_first() 21 item['name'] = table_row.xpath('td[5]/a/text()').extract_first() 22 yield item

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/11 03:52 編集
2018/11/14 10:03 編集
2018/11/14 11:36
2018/11/15 07:47
2018/11/15 08:18 編集
2018/11/15 23:30
2018/11/16 03:14