私は最初のPythonプロジェクトに取り組んでおり、Scrapy.orgフレームワークを使用しています。IFステートメントを使用して、価格が空であるかどうかを判断しようとしているため、CSVファイルに保存されません。
何らかの理由で、インデント例外が発生します。
IndentationError:インデントされたブロックが必要です
IFステートメントは、このコードスニペットの最後にあります。
時間を割いて私を助けてくれてありがとう!
コード:
from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
from craigslist_sample.items import CraigslistSampleItem
class MySpider(BaseSpider):
name = "craig"
allowed_domains = ["craigslist.org"]
start_urls = [
'http://longisland.craigslist.org/search/sss?sort=date&query=raptor+660&srchType=T',
'http://newyork.craigslist.org/search/sss?zoomToPosting=&query=raptor+660&srchType=T&minAsk=&maxAsk=&sort=date',
'http://hudsonvalley.craigslist.org/search/sss?zoomToPosting=&query=raptor+660&srchType=T&minAsk=&maxAsk=&sort=date',
'http://newjersey.craigslist.org/search/sss?zoomToPosting=&query=raptor+660&srchType=T&minAsk=&maxAsk=&sort=date',
'http://hartford.craigslist.org/search/sss?zoomToPosting=&query=raptor+660&srchType=T&minAsk=&maxAsk=&sort=date'
]
def parse(self, response):
hxs = HtmlXPathSelector(response)
titles = hxs.select("//p")
items = []
for titles in titles:
item = CraigslistSampleItem()
#item["date"] = titles.select('span[@class="itemdate"]/text()').extract()
item ["title"] = titles.select("a/text()").extract()
item ["link"] = titles.select("a/@href").extract()
item ["price"] = titles.select('span[@class="itempnr"]/span[@class="itempp"]/text()').extract()
if not items ["price"]:
#do nothing
else:
items.append(item)
return items