Нужна помощь в разборе файла php / html с использованием python - PullRequest
0 голосов
/ 24 июня 2019

Я хотел бы просмотреть URL https://www.horsedeathwatch.com/index.php и вывести данные в кадр данных Pandas.

Колонка как лошадь / дата / курс / причина смерти Я попытался pandas read_html, чтобы напрямую прочитать этот URL, и он не нашел таблицу, даже если у нее есть тег table.

Я пытался использовать:

  url='https://www.horsedeathwatch.com/index.php'
  #Create a handle, page, to handle the contents of the website
  page = requests.get(url)
  #print(page.text)
  soup = BeautifulSoup(page.content,'lxml')

и затем метод findall ('tr'), но по какой-то причине он не работает.

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

любое предложение о том, как я могу извлечь эти дополнительные атрибуты во фрейм данных pandas

1 Ответ

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

Глядя на сайт, я вижу, что данные загружаются с помощью POST-запроса на /loaddata.php с передачей номера страницы. Объединяя это с pandas.read_html:

import requests
import pandas

res = requests.post('https://www.horsedeathwatch.com/loaddata.php', data={'page': '3'})
html = pandas.read_html(res.content)

Хотя, возможно, BeautifulSoup даст вам более богатую структуру данных .. потому что, если вы хотите извлечь дополнительные атрибуты для каждой лошади, вам потребуется получить 'href' элемента привязки и выполнить другой запрос - это GET запросите, и вам нужно проанализировать содержимое ответа из <div class="view"> в ответе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...