Вход в Facebook с запросами Python 2020 - PullRequest
2 голосов
/ 16 марта 2020

Здравствуйте, я хотел бы создать бота, который автоматически войдет в Facebook и создаст сообщение для определенной группы c. Я думаю, что я буду использовать селен для создания сообщения, что будет легко, поэтому я просто прошу помощи с первой частью. У меня проблемы, потому что некоторые данные формы на вкладке инструмента разработчика сети скрыты и не отображаются на веб-сайтах html, и я не знаю, как их найти. Вот мой код:

import requests
from bs4 import BeautifulSoup

headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36'
}
data = {
    'email': '----------',
    'pass': '---------',
    'timezone': '-60',
    'locale': 'pl_PL',
    'next': 'https://www.facebook.com/',
    'login_source': 'login_bluebar',
    'prefill_contact_point': '512250794',
    'prefill_source': 'browser_onload',
    'prefill_type': 'password',
    'skstamp': 'eyJoYXNoIjoiYThiN2EyOTMwNTJhZTUzODg0YjZiNWNlOWQ1NzZjZjUiLCJoYXNoMiI6IjQ3ZWI4M2U1ZjVmYTQxMTQ4MDIxYWVlZTgzNTk3ZWJmIiwicm91bmRzIjo1LCJzZWVkIjoiYjU0NWE4MzczOTgwYTZhODViZjUzYmE3ZmM0OWIyOWYiLCJzZWVkMiI6IjdiNTU0NzBjM2M5NjlhMTY3YmZkZmIwZjE5ODlmNDdhIiwidGltZV90YWtlbiI6ODA3OTAsInN1cmZhY2UiOiJsb2dpbiJ9'
}
with requests.Session () as s:
    url = 'https://www.facebook.com/'
    r = s.get(url, headers=headers)
    soup = BeautifulSoup(r.content, 'lxml')
    data['jazoest'] = soup.find('input', attrs={'name': 'jazoest'})['value']
    data['lsd'] = soup.find('input', attrs={'name': 'lsd'})['value']
    data['lgnrnd'] = soup.find('input', attrs={'name': 'lgnrnd'})['value']
    data['lgndim'] = soup.find('input', attrs={'name': 'lgndim'})['value']
    data['ab_test_data'] = soup.find('input', attrs={'name': 'ab_test_data'})['value']
    data['lgnjs'] = soup.find('input', attrs={'name': 'lgnjs'})['value']
    data['guid'] = soup.find('input', attrs={'name': 'guid'})['value']
    data['lgndim'] = soup.find('input', attrs={'name': 'lgndim'})['value']

    r = s.post(url, data=data, headers=headers)

    print(r.content)

Я был бы очень рад, если бы кто-нибудь мог помочь мне с этим. Есть ли лучший способ сделать такие вещи в 2020 году? Да, я знаю, что были сделаны некоторые сообщения о входе в Facebook с запросами с помощью bs4, но они относятся к 2018 году, и я думаю, что Facebook сильно изменился, например, некоторые заголовки исчезают или меняют свое имя после каждого входа в систему.

1 Ответ

1 голос
/ 16 марта 2020

Вы можете использовать API Facebook, который доступен по адресу developers.facebook.com

Вместо того, чтобы использовать стороннюю библиотеку, вы можете публиковать сообщения непосредственно в группе с помощью API (см. здесь для более подробной информации)

...