Как написать XPath для Div и сильного в HTML - PullRequest
1 голос
/ 26 июня 2019

Мне нужно написать xpath для div и strong

td[contains(div/@class,'lpadding20')//text()

HTML:

<div class="lpadding20" style="font-weight: normal;">
   <strong>Published: </strong>6/18/2019 at 11:18 AM.  This list includes 501 eligible players.
</div>

Ответы [ 3 ]

0 голосов
/ 26 июня 2019

Попробуйте набрать xpath, чтобы получить strong текст.

from lxml.html import fromstring

htmlelem = """
<div class="lpadding20" style="font-weight: normal;">
   <strong>Published: </strong>6/18/2019 at 11:18 AM.  This list includes 501 eligible players.
</div>
"""
tree = fromstring(htmlelem)

itemstrong1 = tree.xpath("//div[@class='lpadding20']/strong/text()")[0].strip()
print(itemstrong1)
itemstrong2 = tree.xpath("//div[@class='lpadding20']/strong/following::text()")[0].strip()
print(itemstrong2)
0 голосов
/ 26 июня 2019

Попробуйте это,

from scrapy.selector import Selector

body = '<div class="lpadding20" style="font-weight: normal;"><strong>Published: </strong>6/18/2019 at 11:18 AM.  This list includes 501 eligible players.</div>'

before_strong = Selector(text=body).xpath("//div[@class='lpadding20']/strong/text()").extract_first()
after_strong = Selector(text=body).xpath("//div[@class='lpadding20']/strong/following::text()").extract_first()

print(before_strong)
print(after_strong)

Вывод:

'Published: '
'6/18/2019 at 11:18 AM.  This list includes 501 eligible players.'
0 голосов
/ 26 июня 2019

попробовать:

//div[@class="lpadding20"]//strong[contains(text(), "text you are looking for")]

для точного текста:

//div[@class="lpadding20"]//strong[text()="text you are looking for"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...