我是一个scrapy新手,并写在蜘蛛下面。我希望用csv中的每一行或xml中的每个项目写入xml或csv作为名称,tele,addr。
我正在使用命令: scrapy crawl abc -o items.csv -t csv
我正在寻找输出:
name,addr,tele
n1,a1,t1
n2,a2,t2
n3,a3,t3
但我明白了:
name,addr,tele
n1,n2,n3 a1,a2,a3 t1,t2,t3
蜘蛛代码
import scrapy
from abc.items import abcItem
from scrapy.contrib.loader import ItemLoader
class abcSpider(scrapy.Spider):
name = "abc"
allowed_domains = ["abc.com"]
start_urls = ["abc.com/"]
def parse(self, response):
items = []
l = ItemLoader(item=abcItem(), response=response)
l.add_xpath('name', '//section[@class="abcrp"]/a/@title')
l.add_xpath('tele', '//p[@class="abcw"]/a/@href')
l.add_xpath('addr', '//span[@class="dn"]/text()')
return l.load_item()
商品代码
import scrapy
class abcItem(scrapy.Item):
name = scrapy.Field()
addr = scrapy.Field()
tele = scrapy.Field()
答案 0 :(得分:1)
我能够解决这个问题。我在外部标签上使用了for循环,其中包含我的名字,addr和tele标签