#python #web-scraping #beautifulsoup
#python #веб-очистка #beautifulsoup
Вопрос:
Я хочу очистить свою домашнюю страницу facebook, на которую всегда выполняется вход на моем компьютере, используя python и beautifulsoup. Я использую приведенный ниже код :
from urllib.request import urlopen as urlo
from bs4 import BeautifulSoup as soup
url = 'https://www.facebook.com'
uclient = urlo(url)
page = uclient.read()
uclient.close()
page_soup = soup(page,'html.parser')
x = page_soup.findAll('div',{'id':'fbNotificationsJewel'})
Но x возвращает пустой список. Я хочу поработать над разделением, показывающим количество уведомлений на facebook, и вернуть количество уведомлений, которые у меня есть в моей учетной записи. Моя учетная запись всегда авторизована! Я делаю что-то не так, или beuatiful soup не может этого сделать. Я прилагаю скриншот, показывающий элемент в html-коде, чтобы показать, на что я ссылаюсь :
Комментарии:
1. Ваш facebook довольно динамичен, поэтому вы можете использовать
selenium
для рендеринга страницы2. Краткий ответ: Facebook не любит, когда его удаляют, и имеет несколько мер, чтобы усложнить это. Используйте их API.
3. Ваш браузер зарегистрирован, а не ваш компьютер. Информация, хранящаяся в вашем браузере, которая позволяет Facebook.com информация о том, кто вы, недоступна для Python, это было бы небольшой проблемой безопасности. Вам нужно написать код, чтобы действительно войти в Facebook. Это не так уж и тривиально, и Facebook предпочел бы, чтобы вы использовали их выделенные URL-адреса для автоматического доступа .
Ответ №1:
Когда вы запрашиваете страницу Facebook, но не прошли аутентификацию, вам будет представлена стандартная страница входа.
Я полагаю, что этот элемент не существует на этой странице и, следовательно, ничего не возвращает.
Вам нужно посмотреть на аутентификацию с помощью beautiful soup. К сожалению, я не могу привести вам пример, но ответ здесь, в моем сообщении.