拥有以下内容:
import scrapy
class ScrapeMovies(scrapy.Spider):
name='final'
start_urls = [
'https://www.trekearth.com/members/'
]
def parse(self, response):
for entry in response.xpath('//table[@class="member-table"]'):
yield{
'name': entry.xpath('.//tr[@class="row"]/td/p/a/text()').extract()
}
我想在单个页面上提取用户名,但是.csv导出名称在一个单元格中。怎么改变?什么是最合适的方法?
我在运行抓取工具时只需添加-o file.csv
即可将文件保存为csv。
我收到的输出是第1行。
我想要的输出或多或少像3到5行。
请进一步解释为什么这个问题值得投票?为了提高我的问题质量,我想知道这一点。
答案 0 :(得分:1)
看起来像是
entry.xpath('.//tr[@class="row"]/td/p/a/text()').extract()
实际上是一个名单列表。
尝试迭代它并为每个名称产生一个项目:
import scrapy
class ScrapeMovies(scrapy.Spider):
name='final'
start_urls = [
'https://www.trekearth.com/members/'
]
def parse(self, response):
for entry in response.xpath('//table[@class="member-table"]'):
for name in entry.xpath('.//tr[@class="row"]/td/p/a/text()').extract():
yield {'name': name}