あるページからデータを抽出しています。もちろん、さらに深くする必要がありますが、まだその最初のページで立ち往生しています。これは私のコードです:
from scrapy.contrib.spiders import CrawlSpider
from scrapy.selector import HtmlXPathSelector
from street.items import HstreetItem
class MySpider(CrawlSpider):
name = "go-h"
allowed_domains = ["http://somedomain.com"]
start_urls = ["http://somedomain.com"]
def parse(self,response):
#response = response.replace(body=response.body.replace('\n', '')) # doesn't work
hxs = HtmlXPathSelector(response)
details = hxs.select('//tr')
items = []
#n = 0
for detail in details:
item = HondastreetItem()
item['url'] = "".join(detail.select('td[@class="Model_LineModel_odd"]/a/@href | td[@class="Model_LineModel_even"]/a/@href').extract()).strip()
item['model'] = "".join(detail.select('td[@class="Model_LineModel_odd"]/a/text() | td[@class="Model_LineModel_even"]/a/text()').extract())
item['year'] = "".join(detail.select('td[@class="Model_LineYear_odd"]/text() | td[@class="Model_LineYear_even"]/text()').extract())
items.append(item)
return items
コードは正常に動作し、パイプラインを介して次のように csv ファイルにデータを抽出します。
cell 1 | cell2 | cell3
url | model | year
.
.
.
問題は、csv ファイルに空の行がたくさんあることです。最初は正確に17行で、csvファイルの塗りつぶされた行の間に空の行があります。クロールされたテーブルの前にあるいくつかのテーブルと、クロールされたテーブル内の不要な行 (カテゴリ名など) が原因であると思います。私はこの過去24時間で立ち往生しています:(同様の質問で見つけたすべての解決策を試しましたが、何もうまくいきませんでした.
手伝ってくれてありがとう!