Scrapy CSV导出在所有行中显示相同的数据
我正在尝试提取以下html代码:Scrapy CSV导出在所有行中显示相同的数据,scrapy,scrapy-spider,Scrapy,Scrapy Spider,我正在尝试提取以下html代码: <ul class="results-list" id="search-results"> <li> <h3 class="name">First John</h3> <div class="details"> <a href="mailto:example@mail.com" class="email">email</a> <span class="
<ul class="results-list" id="search-results">
<li>
<h3 class="name">First John</h3>
<div class="details">
<a href="mailto:example@mail.com" class="email">email</a>
<span class="phone">999999999</span>
</div>
</li>
<li>
<h3 class="name">Second John</h3>
<div class="details">
<a href="mailto:example@mail.com" class="email">email</a>
<span class="phone">999999999</span>
</div>
</li>
</ul>
但是,当我运行scrapy crawl MySpider-o output.csv时,所有行中的信息都相同。如果您在xpath表达式上使用绝对路径,请将它们更改为:
for person in people:
item = SpiderItem()
item['Name'] = person.xpath(
'.//h3/text()').extract_first()
item['Email'] = person.xpath(
'.//div[@class="details"]/a/@href').extract_first()
item['Phone'] = person.xpath(
'.//div[@class="details"]/span[@class="phone"]/text()').extract_first()
yield item
谢谢。现在很有魅力。
for person in people:
item = SpiderItem()
item['Name'] = person.xpath(
'.//h3/text()').extract_first()
item['Email'] = person.xpath(
'.//div[@class="details"]/a/@href').extract_first()
item['Phone'] = person.xpath(
'.//div[@class="details"]/span[@class="phone"]/text()').extract_first()
yield item