Webサイトをスクレイプし、結果をCSVファイルに保存してフォーマットしようとしています。ファイルを保存することはできますが、出力とフォーマットに関して3つの質問があります。
すべての結果は、複数の行ではなく1つのセルに存在します。アイテムをリストしてリストに表示するときに使用するのを忘れているコマンドはありますか?
['u...
各結果の前にあるを削除するにはどうすればよいですか?(私は検索してその方法を確認しましたが、そうではprint
ありませんreturn
)特定のアイテムの結果にテキストを追加する方法はありますか?(たとえば、各取引リンクの結果の先頭に「http://groupon.com」を追加できますか?)
from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
from deals.items import DealsItem
class DealsSpider(BaseSpider):
name = "groupon.com"
allowed_domains = ["groupon.com"]
start_urls = [
"http://www.groupon.com/chicago/all",
"http://www.groupon.com/new-york/all"
]
def parse(self, response):
hxs = HtmlXPathSelector(response)
sites = hxs.select('//div[@class="page_content clearfix"]')
items = []
for site in sites:
item = DealsItem()
item['deal1'] = site.select('//div[@class="c16_grid_8"]/a/@title').extract()
item['deal1link'] = site.select('//div[@class="c16_grid_8"]/a/@href').extract()
item['img1'] = site.select('//div[@class="c16_grid_8"]/a/img/@src').extract()
item['deal2'] = site.select('//div[@class="c16_grid_8 last"]/a/@title').extract()
item['deal2link'] = site.select('//div[@class="c16_grid_8 last"]/a/@href').extract()
item['img2'] = site.select('//div[@class="c16_grid_8 last"]/a/img/@src').extract()
items.append(item)
return items