我有三个商店的数据集(Winkel1-3),我想提取地址。我构建的内容提取名称,然后是地址,而不是两者的组合。我确定我已经构建了一个有缺陷的循环,但我无法弄清楚要改变什么。
我的数据集:
<ul id="itemsList">
<li class="citem ">
<a alt="Winkel 1" href="/Zuid-Holland/Delft/Winkel1">Winkel1</a>
Buitenwatersloot 51,2613TB
</li>
<li class="citem ">
<a alt="Winkel 2" href="/Zuid-Holland/Delft/Winkel2">Winkel 2</a>
Laan van Van der Gaag 75,2627BX
</li>
<li class="citem ">
<a alt="Winkel 3" href="/Zuid-Holland/Delft/Winkel3">Winkel 3</a>
Achterom 89,2611PM
</li>
</ul>
我的刮刀:
class DmozSpider(Spider):
name = "dmoz"
allowed_domains = ["mydomain.nl"]
start_urls = [
"http://www.mydomaintestdata.nl/Zuid-Holland/Delft"
]
def parse(self, response):
sel = Selector(response)
sites = sel.xpath('//ul[@id="itemsList"]/li')
loop = sel.xpath('/html')
for site in loop:
adres = sites.xpath('.//a/text()').extract(),
sites.xpath('text()').extract()
print adres
返回两个数组:
[Winkel1, Winkel2, Winkel3],['Buitenwatersloot 51,2613TB','Laan van Van der Gaag 75,2627BX','Achterom 89,2611PM']
我想要的是什么:
[Winkel1,'Buitenwatersloot 51,2613TB'],[Winkel2, 'Laan van Van der Gaag 75,2627BX'],[Winkel3, 'Achterom 89,2611PM']
答案 0 :(得分:1)
迭代li
个元素并获取链接并测试循环中的每个li:
sites = sel.xpath('//ul[@id="itemsList"]/li')
for site in sites:
print site.xpath('./a/text()').extract(), site.xpath('text()').extract()