2

あるページからデータを抽出しています。もちろん、さらに深くする必要がありますが、まだその最初のページで立ち往生しています。これは私のコードです:

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時間で立ち往生しています:(同様の質問で見つけたすべての解決策を試しましたが、何もうまくいきませんでした.

手伝ってくれてありがとう!

4

1 に答える 1