Очистите содержимое веб-страницы с помощью Python / selenium - PullRequest
1 голос
/ 23 июня 2019

Я пытаюсь очистить содержимое таблицы . Я считаю, что таблица отображается в JavaScript , поэтому я использую пакет selenium и Python3. Чтобы выполнить такую ​​задачу, я видел, как другие находят таблицы xpath, чтобы очистить их содержимое, но я просто не уверен, как определить правильный xpath.

Как мне извлечь содержимое таблиц? Если используется xpath, как определить правильный путь (и), соответствующий таблице или ее содержимому, просмотрев источник веб-страницы?

from selenium import webdriver                                                                                                                                                                                                                                              
driver = webdriver.Chrome('path/to/chromedriver.exe')                                      
url = https://ultrasignup.com/results_event.aspx?did=6727
driver.get(url)

# Now I need to get the tables contents. I might do something like this:
table = driver.find_elements_by_xpath('my_xpath')
table_html = table.get_attribute('innerHTML') # not sure what innerHTML is...
df = read_html(table_html)[0]
print(df)
driver.close()     

Ответы [ 2 ]

1 голос
/ 23 июня 2019

Я полагаю, что очищать не нужно, потому что у них есть API.

Если вы перейдете по этой ссылке, вы увидите красиво отформатированные данные из предоставленной вами таблицы: https://ultrasignup.com/service/events.svc/results/6727/json

Какой-то код:

import json, requests

url = 'https://ultrasignup.com/service/events.svc/results/6727/json'

response = requests.get(url)

# Get all people from the table
people = [x for x in response.json()] 

# Print first person's information
print(people[0]) 

Надеюсь, это поможет!

0 голосов
/ 23 июня 2019

Вы можете определить правильный xpath, проверив элементы таблицы и просмотрев исходный код. После того, как вы увидите, в каких тегах содержится содержимое таблицы, вы должны пошагово выполнить xpath.

Например:


<div class="test">
<p class="test2">
<table class="test3"> 
<!--May have more attributes-->
contents...
</table>
</p>
</div>

Затем вы начинаете свой xpath с // div [@ class = "test"] Теперь вы внутри div,

Следующий шаг: // DIV [@ класс = "тест"] // р [@ класс = "test2"] Теперь вы внутри тега абзаца

Последний шаг:

xpath = "//div[@class='test']//p[@class='test2']//table[@class='test3']"

table = driver.find_elements_by_xpath('xpath')

Теперь вы можете получить доступ к таблице и получить любые нужные вам атрибуты или даже содержимое таблицы

...