def parse_item(self, response):
for jobs in response.xpath('//div[@itemtype="http://schema.org/JobPosting"]'):
item = IndeedCoUkItem()
item["jobtitle"] = jobs.xpath('*[@class="jobtitle"]/a//text()').extract()
yield item
项目保存为CSV文件,
职称
“高级,嵌入式,软件,工程师”
嗨,
以上是我的scrapy搜寻器代码的片段.我想输出是逗号和空白空间.这是从“高级,嵌入式,软件,工程师”到这个“高级嵌入式软件工程师”.我尝试使用replace(),如..extract()[0] .replace(“,”,“”),但它不起作用.任何帮助/建议?
最佳答案 您是否尝试打印/记录进入项目[‘jobtitle]字段的列表?如果它是一个列表(好吧,它是一个列表),那么导出到CSV文件会将此列表转换为逗号分隔的条目.
尝试查看结果并将列表加入到一个:
item["jobtitle"] = ' '.join(jobs.xpath('*[@class="jobtitle"]/a//text()').extract())
如果项目包含额外的空格而不是全部空格,则可以在元素上使用贴图和条带:
item["jobtitle"] = ' '.join(map(unicode.strip,jobs.xpath('*[@class="jobtitle"]/a//text()').extract()))
这会走遍所有元素,并在开始和结束时剥离空白.
或者你可以使用XPath的normalize-space:
item["jobtitle"] = ' '.join(jobs.xpath('normalize-space(*[@class="jobtitle"]/a//text())').extract())