Я обнаружил, что сталкиваюсь со следующим кодом, из которого я пытаюсь очистить определенную информацию, такую как текст и гиперссылки:
<td class="value">
#1 in Musical Instruments, Stage & Studio (<a href="https://www.amazon.ca/gp/bestsellers/musical-instruments/ref=pd_dp_ts_musical-instruments_1">See top 100</a>)
<ul class="zg_hrsr">
<li class="zg_hrsr_item">
<span class="zg_hrsr_rank">#1</span>
<span class="zg_hrsr_ladder">in <a href="https://www.amazon.ca/gp/bestsellers/musical-instruments/16596681011/ref=pd_zg_hrsr_musical-instruments_1_1_last">Studio Headphones</a></span>
</li>
</ul>
</td>
Сначала - и, что не менее важно, - я не уверен, почемуприведенный ниже текст, извлеченный из веб-страницы , не соответствует тексту в коде или на реальной странице?
#1 in Musical Instruments, Stage & Studio (See top 100)
#1 in Musical Instruments, Stage & Studio > Studio Recording Equipment > Headphones & In-Ear Monitors > Headphones
А вот текст, который отображаетсяна фактической странице .
#1 in Musical Instruments, Stage & Studio (See top 100)
#1 in Studio Headphones
Вот часть моего скрипта, которая извлекает текст из веб-страницы.
rank_categories = ff.find_elements(By.XPATH, '//*[@id="SalesRank"]/td[2]')
if len(rank_categories) > 0:
rank_categories = rank_categories[0].text
else:
rank_categories = ff.find_element(By.XPATH, '//*[@id="SalesRank"]').text
# rank_categories is td.value
Наконец - и самое главное -Есть ли способ извлечь текст данного элемента, исключая или не выделяя текст дочерних элементов?
В приведенном выше примере я хотел бы иметь возможность извлечь #1 in Musical Instruments, Stage & Studio (See top 100)
, #1
и in Studio Headphones
отдельно, чтобы избавить себя от необходимости писать чрезвычайно сложные регулярные выражения для анализа информации.
Есть ли способ выделить только текст выбранного элемента, но при этомЛектировать текст своих детей?