Очистите страницу Instagram Hashtag с BeautifulSoup и python - PullRequest
0 голосов
/ 29 февраля 2020

Я следовал учебному пособию по BeautifulSoup, чтобы собрать информацию с веб-сайта, мне нужно получить ссылки на сообщения Instagram на странице исследования хэштега, но у меня нет результатов,

url_tag = 'https://www.instagram.com/explore/tags/food'
response_url_tag = get(url_tag)

html_soup = BeautifulSoup(response_url_tag.text, 'html.parser')
#print(html_soup.prettify())

for link in html_soup.find_all('a'):
    print(link.get('href'))

HTML DOM Как мне почистить все ссылки? Что мне нужно изменить в моем коде?

1 Ответ

0 голосов
/ 29 февраля 2020

Вы не сможете сделать это с BeautifulSoup. Причина в том, что, как и во многих современных веб-приложениях, ссылки, которые вы можете видеть в инспекторе вашего браузера, находятся не в коде html, а отображаются с помощью javascript внутри браузера. Если вы curl URL, вы не получите никаких тегов <a> в загруженном HTML.

. Решение с Instagram заключается в запросе Graphql. В вашем примере это будет с этим URL: https://www.instagram.com/explore/tags/food/?__a=1

Параметр в URL-адресе говорит Instagram, что нужно создать Graphql вместо HTML. Тогда вам придется проанализировать это с помощью python. Библиотека графена делает это.

Или вы можете использовать, например, Instagram Scraper , который упаковывает все это для вас.

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