[英]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
. 那应该给出每个
div
的svg
元素计数的列表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.