我要删除的网站中包含特定div中div的列表或集合。所以我试图从每个div获取链接。我需要遍历吗?
<div class="a">
<div class = "b"><div><a></a></div><div><a></a></div></div>
<div class = "b"><div><a></a></div><div><a></a></div></div>
<div class = "b"><div><a></a></div><div><a></a></div></div>
<div class = "b"><div><a></a></div><div><a></a></div></div>
<div class = "b"><div><a></a></div><div><a></a></div></div>
<div class = "b"><div><a></a></div><div><a></a></div></div>
<div class = "b"><div><a></a></div><div><a></a></div></div>
</div>
那么我该如何从每个div中提取第二个href或链接。
答案 0 :(得分:0)
尝试response.xpath('//div[@class="a"]/div/div[2]/a')
。它将为您提供div
中的第二div.b
,然后从中提取链接a
。
您可以在必填a
上添加一些文字,以便我们更加清楚地了解您。
答案 1 :(得分:0)
一个更紧凑的选择是只使用.css
,将其签出:
In [12]: from parsel import Selector
In [13]: text = '''<div class="a">
...: <div class = "b"><div><a></a></div><div><a></a></div></div>
...: <div class = "b"><div><a></a></div><div><a></a></div></div>
...: <div class = "b"><div><a></a></div><div><a></a></div></div>
...: <div class = "b"><div><a></a></div><div><a></a></div></div>
...: <div class = "b"><div><a></a></div><div><a></a></div></div>
...: <div class = "b"><div><a></a></div><div><a></a></div></div>
...: <div class = "b"><div><a></a></div><div><a></a></div></div>
...: </div>'''
In [14]: response = Selector(text)
In [15]: response.css('.a a').extract()
Out[15]:
['<a></a>',
'<a></a>',
'<a></a>',
'<a></a>',
'<a></a>',
'<a></a>',
'<a></a>',
'<a></a>',
'<a></a>',
'<a></a>',
'<a></a>',
'<a></a>',
'<a></a>',
'<a></a>']
.a
是指定标记类的紧凑方法。