Проблема входа в Facebook с помощью scrapy - PullRequest
0 голосов
/ 15 сентября 2018

Я только начал использовать скрап. Я сталкиваюсь с несколькими проблемами с логином в scrapy. Я пытаюсь войти в Facebook, используя запрос POST. Я могу получить «lsd» и «lgnrnd» с помощью селекторов CSS. Однако я не могу получить lgnjs и ab_test_data . Я поместил все остальные параметры так же, как показано в заголовке, так как они статические. Как я могу получить эти параметры, чтобы я мог войти в Facebook? как заставить работать отправку формы и очистить некоторые случайные данные после входа в систему? Вот мой код:

import scrapy

class FbLogin(scrapy.Spider):
    name = 'fblogin'
    login_url= "https://www.facebook.com"
    start_urls = [login_url]

    def parse(self, response):
        #extract csrf token value
        token= response.css('input[name="lsd"]::attr(value)').extract_first()
        lgnrnd=response.css('input[name="lgnrnd"]::attr(value)').extract_first()
        # i get u'n'
        lgnjs=response.css('input[name="lgnjs"]::attr(value)').extract_first(),
        # i get u'n'
        ab_test_data=response.css('input[name="ab_test_data"]::attr(value)').extract_first(),

        #create dict with data to send it to server
        data= {
                'lsd':token,
                'email':'abcde@gmail.com',
                'pass':'*********',
                'lgnrnd': lgnrnd,
                'lgnjs':lgnjs,
                'ab_test_data':ab_test_data,
                'timezone': '****',
                'lgndim':'****',
                'locale': '****',
                'login_source': '****',
                'prefill_contact_point':'abcde@gmail.com',
                'prefill_source': '****',
                'prefill_type': '****',
                'skstamp':'****'
              }
        #yield a post request to it
        yield scrapy.FormRequest(url=self.login_url,formdata= data,callback=self.fb_parse)

Также, как мне убедиться, что я успешно вошел в систему? В ответ я всегда получаю пустой список. и когда я открываю инструмент разработчика и проверяю, я вижу, что данные в ответ зашифрованы. Как я могу получить объект ответа с помощью скрапа?

На данный момент я делаю это:

def fb_parse(self, response):
        #check login succeed before going on
        if "the password you entered is incorrect" in response.body:
            self.log("\n\n\n\nLogin failed\n\n\n\n", level=self.log())
        else:
            self.log("\n\n\n Logging in ..!!!\n\n\n")
            # self.log(response.body)
            return scrapy.Request(url="https://www.facebook.com",callback=self.parse_items)

def parse_items(self,response):
        self.log("\n\n\n I just visitied "+response.url+"\n\n\n")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...