Похоже, что метод Get из библиотеки запросов возвращает домашнюю страницу, а не конкретный URL - PullRequest
2 голосов
/ 09 октября 2019

Я новичок в Python и вообще в объектно-ориентированном программировании. Я пытаюсь создать простой веб-скребок для создания фреймов данных из контрактных данных NBA на basket-reference.com. Я планировал использовать библиотеку запросов вместе с BeautifulSoup. Однако метод get, похоже, возвращает домашнюю страницу сайта, а не страницу, связанную с URL-адресом, который я даю.

Я даю URL-адрес странице контрактов команды (https://www.basketball -reference.com /contract / IND.html ), но когда я распечатываю html, он выглядит так, как будто он принадлежит домашней странице. ...

Я использую Spyder IDE.

# Import library
import requests

# Assign the URL for contract scraping
url = 'https://www.basketball-reference.com/contracts/IND.html'

# Pull contracts page
page = requests.get(url)

# Check that correct page is being pulled
print(page.text)

Кажется, это должно быть очень просто, поэтому я не понимаю, почему консоль отображает HTML, который явно нене относится к странице, на которую я пытаюсь указать. Я не получаю никаких ошибок, просто html с домашней страницы.

1 Ответ

0 голосов
/ 09 октября 2019

После проверки кода на repl.it и самостоятельного посещения веб-страницы я могу подтвердить, что вы вводите правильный HTML-код страницы. Переменная page содержит таблицы данных, а также их информацию ... а также рекламные объявления страницы, контактную информацию, кнопки и ссылки в социальных сетях, сценарии обнаружения рекламного блока и все остальное на веб-странице. Ваша проблема не в том, что вы получаете не ту страницу, а в том, что вы получаете всю страницу, а не только данные.

Вы хотите выбрать именно те биты, которые вас интересуют - возможно, выбрав таблицу и ее дочерние элементы? HTML-идентификатор таблицы - contracts - это должно быть хорошее место для начала.

(Попробуйте перейти на страницу в браузере, щелкнуть правой кнопкой мыши в любом месте страницы и щелкнуть «просмотреть исходный код страницы» - вот что привлекает ваша программа. Веб-страница гораздо больше, чем думает большинство людей)!)

В качестве предупреждения, однако, у Sports Reference есть политика использования данных , которая запрещает использование веб-сканеров / пауков на их сайте. Я бы порекомендовал проверить (и использовать) один из бесплатных сайтов, на которые они ссылаются;в противном случае вы рискуете быть забаненным по IP.

...