Как я могу найти xpath или CSS селектор только для «Всего случаев» в следующей таблице (url = this https://www.worldometers.info/coronavirus/) - PullRequest
0 голосов
/ 26 апреля 2020

Я пробовал несколько типов XPath, но ни один из тех, которые работают так, как я хочу,

Xpath : //td[@class='sorting_1'], 
xpath: //tr[contains(@class,'even')]//td[@class='sorting_1'],
xpath : //tr[contains(@class,'odd')]//td[@class='sorting_1']

CSS: .even+ .odd .sorting_1 , .even .sorting_1

, но селектор CSS не работает в лоскутной оболочке

Можете ли вы помочь я из этой ситуации ??

Ответы [ 2 ]

1 голос
/ 26 апреля 2020

Чтобы получить общее количество дел по странам, просто используйте:

//table[@id='main_table_countries_today']//td[contains(@style,'text-align:left;')][normalize-space()]/following-sibling::td[1]

Чтобы получить названия стран:

//table[@id='main_table_countries_today']//td[contains(@style,'text-align:left;')][normalize-space()]

Вывод (219 строк):

Tc

Примечание: normalize-space используется для фильтрации «призрачной» строки, присутствующей в таблице (без названия страны и значения 721). Вероятно, остаток и старая запись "Diamond Princess". РЕДАКТИРОВАТЬ: Фактически 721 соответствует общему количеству дел на двух кораблях (Diamond Princess и MS Zaandam)

EDIT : если вы хотите получить данные для каждой страны (корабли и Мир включен), расположенный только на первой вкладке (213 узлов):

//table[@id='main_table_countries_today']//td[contains(@style,'text-align:left;')][parent::tr[not(@style="display: none")]]/following-sibling::td[1]

Чтобы исключить корабли (211 узлов):

//table[@id='main_table_countries_today']//td[contains(@style,'text-align:left;')][parent::tr[not(@style="display: none")]][not(./span)]/following-sibling::td[1]

Чтобы исключить корабли и Мир (210 узлов) :

//table[@id='main_table_countries_today']//td[contains(@style,'text-align:left;')][parent::tr[not(@style="display: none")]][./a[@href]]/following-sibling::td[1]
0 голосов
/ 26 апреля 2020

Эй, попробуйте использовать это выражение для xpath:

(//div[@class='maincounter-number']/span)[1]/text()

для css:

response.css('#maincounter-wrap:nth-child(7) span::text')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...