简体   繁体   English

Xdiv计数/ div中的svg元素

[英]XPath count svg elements in /div

Cant get a list of specific SVG elements in div 无法获得div中特定SVG元素的列表

With For cycle all is perfect, but XPath count is strange for me. 使用For cycle,一切都很完美,但是XPath的计数对我来说很奇怪。

from lxml import html
import requests

race_link = 'https://www.racingtv.com/racecards/bath/244519-visit-four-from-the-top-at-valuerater-co-uk-apprentice-handicap-5?'

race_page = requests.get(race_link)
act_race = html.fromstring(race_page.content)

name_horses = act_race.xpath('//div[@class="racecard__runner__column racecard__runner__name"]/a/text()')
star_horses = act_race.xpath('//div[@class="timeform__stars timeform__rating--alone"]')

print('--------------------')

for(hrs,star) in zip(name_horses,star_horses):
    st = star.xpath('count(svg[@class="svg svg-star_filled  svg--on"])')
    print ('name: {0:<30}stars: {1:<5}'.format(hrs,st))

print(name_horses)
print('--------------------')
print(star_horses)
# stars_list = act_race.xpath('//div[@class="timeform__stars timeform__rating--alone"]/count(svg[@class="svg svg-star_filled  svg--on"])')
# print('stars_list',stars_list)

in the last 2 commented line want to made 1 list (stars_list), but always got error message "Invalid Expression". 在最后2条注释行中,要列出1条列表(stars_list),但始终收到错误消息“无效表达式”。 This drives me crazy, help me guys! 这让我发疯,请帮助我! Thanks a lot 非常感谢

Given list comprehension in Python, I think you could rewrite the pure but XPath 2.0 attempt 鉴于Python中的列表理解能力,我认为您可以重写纯粹但XPath 2.0的尝试

stars_list = act_race.xpath('//div[@class="timeform__stars timeform__rating--alone"]/count(svg[@class="svg svg-star_filled  svg--on"])')

to using XPath 1 twice in a list comprehension: 在列表理解中两次使用XPath 1:

stars_list = [div.xpath('count(svg[@class="svg svg-star_filled  svg--on"])') for div in act_race.xpath('//div[@class="timeform__stars timeform__rating--alone"]')]

That should give a list of the count of svg elements of each div . 那应该给出每个divsvg元素计数的列表。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM