0
は、クモのコードとピクチャーを以下に示している:Scrappyは列ごとにデータを出力します。行ごとにスクラップします。どのように可能ですか?以下
def parse_getData(self, response):
rows=response.xpath('//*[@id="table-timetable"]/table/tbody')
items=[]
for row in rows:
item = ScraperItem()
item['Day'] = row.xpath('.//tr/th/strong/text()').extract()
item['Time'] = row.xpath('.//td/span[1]/text()').extract()
item['Venue']=row.xpath('.//td/span[3]/text()').extract()
item['Subject']=row.xpath('.//td/strong/text()').extract()
items.append(item)
return items
私は以下のように結果うちにそれをしたい:
{'Day':Monday 'Subject':u'BIS3208 (L) - SEMINAR SERIES',u'NET3204 (P) - DISTRIBUTED SYSTEMS'}
が、それは可能ですか?
xpathsを変更すると、私はスクラップする必要がある行の数がわかり、各行にxpathがあるので、私のために働いてくれました。しかし、それは対処しなければならない多くの行を知らず、xpathを持っていないプログラムはどうでしょうか?そのようなプログラムでは、xpathをハードコードできません。私たちはそのような状況で何をすべきですか? –
私はここであなたの問題を理解しているかどうかはわかりません: "しかし、それは対処しなければならない多くの行を知らず、xpathを持っていないプログラムはどうですか?" Webコンテンツが動的に生成される場合はどういう意味ですか? – narko
私は私の場合、私は7行をスクラップしなければならないことを知っていたので、私はちょうどそれらの7行のxpathを別々に取って、フォーマットは Row1:Col1、Col2、Col3でした。しかし、スクレーパーが100秒の行を掻き分けた場合、Row1:Col1、Col2、Col3の形式でデータを取得するために100回のxpathを別々に取ることはできません。私は何を言おうとしているのですか? –