2016-08-17 3 views
1

Я занимаюсь исследованием того, как мобильные телефоны развивались в течение многих лет, поэтому мне нужно создать базу данных со спецификациями как можно большего количества телефонов. Я пытаюсь отказаться от данных с сайта GSM Arena.Мне нужно XPATH для извлечения данных из www.gsmarena.com

Пример страницы: http://www.gsmarena.com/samsung_galaxy_note7-8082.php

Я использую XPATH, содержащий метку, которая предшествует каждому значению, например, // тр [содержит ("Датчики".)]/Тд [2]

Но есть некоторые значения, последние в категории, без предшествующей метки.

Как выбрать эту информацию:

несъемные Li-Po 3500 мАч аккумулятор

или это Ино:

Быстрая батареи зарядки Ци беспроводной зарядки (зависит от рынка) ANT + поддержка Команды и диктовка на естественном языке S-Voice MP4/DivX/XviD/WMV/H.265 плеер MP3/WAV/WMA/еААС +/FLAC плеер Фото/видео редактор редактор Document

Обратите внимание, что различные телефоны имеют различное количество строк на странице, поэтому, используя [число] в XPATH выбрал бы другую информацию от

http://www.gsmarena.com/samsung_galaxy_note7-8082.php - нужно выбрать 5-й ряд особенностей

http://www.gsmarena.com/samsung_sgh_600-49.php - нужно выбрать 8-ая строка функций

ответ

1

чтобы выбрать ро WS без метки в разделе батареи, вы должны использовать этот XPath:

//tbody[.//th[contains(.,'Battery')]]//td[@class="ttl" and not(*)]/following-sibling::td 

Чтобы выбрать данные из функции используют этот

//tbody[.//th[contains(.,'Features')]]//td[@class="ttl" and not(*)]/following-sibling::td 

Для выбора функций камеры

//tbody[.//th[contains(.,'Camera')]]//td[@class="ttl" and contains(.,'Features')]/following-sibling::td 

Для выбора Громкоговоритель в Sound Категория

//tbody[.//th[contains(.,'Sound')]]//td[@class="ttl" and contains(.,'Loudspeaker')]/following-sibling::td 
+0

ЭТО РАБОТАЕТ! И я изначально, хотя это невозможно отменить что-то без предшествующей метки. Но я нашел еще одну проблему: // tr [содержит (., «Features»)]/td [2] вместо того, чтобы выбирать только данные метки Feature в Camera категории, он также выбирает все данные в разделе «Особенности». Также // tr [содержит (., «Loudspeaker»)]/td [2] выбирает две данные, потому что они имеют одну и ту же метку. Как выбрать отдельно громкоговоритель в категории «Звук и тесты»? Можете ли вы помочь с другим XPATH? – Future

+0

Благодарим за редактирование ответа, чтобы добавить ответы. Через 1 месяц я заметил, что у Технологии есть кнопка EXPAND, показывающая полосы 2G, 3G, 4G, поэтому я улучшил свою базу данных, включив их тоже, но на некоторых телефонах (например, http://www.gsmarena.com/apple_iphone_7_plus-8065.php) для каждой группы есть 2 ряда, как выбрать второй ряд (CDMA 800/1900/2100 - A1661), у которого нет предыдущей метки? – Future

Смежные вопросы