Я пытаюсь извлечь таблицу по ссылке. Я делал это на разных сайтах, и у меня возникла странная ошибка.
import requests
from bs4 import BeautifulSoup
#Preliminary get request to website
url = 'https://www.target.com/store-locator/find-stores/10470'
headers = {"User-Agent": "'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36'"}
response = requests.get(url, headers=headers, timeout=(3,30))
soup = BeautifulSoup(response.content, 'html.parser')
# Up to here, everything works as would be expected.
# This will return a NoneType Object and nothing will be found despite seeing it when the page is inspected.
desired_table = soup.find('div', class_="Row-uds8za-0 gUzGLa h-padding-h-default")
Я считаю, что происходит лишний / div . Если вы просматриваете страницу в веб-браузере и следуете за div id = "root" , к div id = "viewport" , к div id = "mainContainer" , на div data-component = "COMPONENT-222040" , тогда вы увидите дополнительный / div .
Если бы я сказал
root_table = soup.find(id="root")
print(root_table.prettyify())
, тогда вы могли бы увидеть, что html заканчивается на этом дополнительном / div, несмотря на то, что есть дополнительная информация, к которой я хочу получить доступ.
Мы будем очень признательны за любой совет о том, как решить эту проблему.