Python Scrapy抓取特定div中的所有div,并从每个div中获取链接

时间:2019-02-07 11:38:41

标签: python html scrapy

我要删除的网站中包含特定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或链接。

2 个答案:

答案 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是指定标记类的紧凑方法。