Xpath.Как мне получить имя тега, заданное селектором.Scrapy - PullRequest
0 голосов
/ 25 октября 2018

У меня есть этот xpath, который возвращает список селекторов.

for i in response.xpath('//*[name()="h2" or name()="h3" or name()="p"]'):
     print i

результаты:

<Selector xpath='//*[name()="h2" or name()="h3" or name()="p"]' data=u'<h3 class="fusion-header-tagline"><img s'>
<Selector xpath='//*[name()="h2" or name()="h3" or name()="p"]' data=u'<h3 class="features-title role-element l'>
<Selector xpath='//*[name()="h2" or name()="h3" or name()="p"]' data=u'<h2 style="text-align: center;">Sell you'>
<Selector xpath='//*[name()="h2" or name()="h3" or name()="p"]' data=u'<p>We buy properties in any shape, any p'>
<Selector xpath='//*[name()="h2" or name()="h3" or name()="p"]' data=u'<p>Attempting to sell your house in Marl'>
<Selector xpath='//*[name()="h2" or name()="h3" or name()="p"]' data=u'<h2 style="text-align: center;"><span st'>
<Selector xpath='//*[name()="h2" or name()="h3" or name()="p"]' data=u'<p><img class="aligncenter wp-image-1439'>
<Selector xpath='//*[name()="h2" or name()="h3" or name()="p"]' data=u'<h3><span style="color: #000000;">No com'>
<Selector xpath='//*[name()="h2" or name()="h3" or name()="p"]' data=u'<h3><span style="color: #000000;">You do'>
<Selector xpath='//*[name()="h2" or name()="h3" or name()="p"]' data=u'<h3><span style="color: #000000;">We wil'>
<Selector xpath='//*[name()="h2" or name()="h3" or name()="p"]' data=u'<h3><span style="color: #000000;">No lis'>

Как получить имя тега для каждого селектора?Т.е. h3, h3, h2, p, p, h2 и т. Д. Я пытался

print name(i)
print i.name()

Это не работает.Как правильно использовать xpath name() для получения имени тега?

1 Ответ

0 голосов
/ 25 октября 2018

Измените свой код на это:

for i in response.xpath('//*[name()="h2" or name()="h3" or name()="p"]'):
    print i.xpath('name()')

Это выберет name() из каждого элемента, выбранного в первом xpath

...