Python Scrapy очищает все div в определенном div и получает ссылки от тех, кто каждый div - PullRequest
0 голосов
/ 07 февраля 2019

Я отказываюсь от сайта, на котором есть список или коллекция 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>

Итак, как мне извлечь второй href или ссылку из каждого div.

Ответы [ 2 ]

0 голосов
/ 07 февраля 2019

Более компактный вариант - просто использовать .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 - это компактный способ указать класс тега.

0 голосов
/ 07 февраля 2019

Попробуйте response.xpath('//div[@class="a"]/div/div[2]/a').Он даст вам второе div из div.b и затем извлечет из него ссылку a.

Вы можете добавить текст к необходимому a, чтобы мы понимали вас более четко.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...