同じページ(同じURL)の「メインテーブル」内の異なる「テーブル」からデータを抽出しようとしています。アイテムフィールドはすべてのサブテーブルで同じXPath/同じ構造を持っているので、私が直面している問題は、このページのテーブルセクションに「複数」のXPathを追加することです。
ここに私のコードはどのように見えるか:
from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
from tutorial.items import TutorialItem
class MySpider(BaseSpider):
name = "test"
allowed_domains = ["blabla.com"]
start_urls = ["http://www.blablabl..com"] // Start_url Doesnt change = Same Page
def parse(self, response):
hxs = HtmlXPathSelector(response)
titles = [hxs.select('//tr[@class="index class_tr group-6487"]')]
//Here I would like to have Mltiple XPathSelectors ex:
// titles = [hxs.select('//tr[@class="index class_tr group-6488"]')]
// titles = [hxs.select('//tr[@class="index class_tr group-6489"]')]
// Each for a table section within the same 'Main Table'
items = []
for title in titles:
item = TutorialItem()
item ['name'] = title.select('td[3]/span/a/text()').extract()
item ['encryption'] = title.select('td[5]/text()').extract()
item ['compression'] = title.select('td[8]/text()').extract()
item ['resolution'] = title.select('td[7]/span/text()').extract()
items.append(item)
return items
これが達成可能であれば、ヒントをいただければ幸いです。テーブルセクションごとに異なるスパイダーを作成すると、同じURL /テーブルに対して10個のスパイダーが作成され、同じ「csv」ファイル内でデータを順番に取得できるかどうかはよくわかりません。