Как отправить форму с сеансом в ScrapyPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как отправить форму с сеансом в Scrapy

Сообщение Anonymous »

Я пытаюсь парсить сайт с помощью Scrapy. Чтобы получить нужный мне контент, мне нужно сначала войти в систему. URL-адрес — login_url.
У меня есть следующая форма:
[img]https:// i.sstatic.net/wMVe2.png[/img]

Мой код выглядит следующим образом:

Код: Выделить всё

LOGIN_URL1 = "https://www.partslink24.com/partslink24/user/login.do"
class PartsSpider(scrapy.Spider):
name = "parts"
login_url = LOGIN_URL1
start_urls = [
login_url,
]

def parse(self, response):
form_data = {
'accountLogin': COMPANY_ID,
'userLogin': USERNAME,
'loginBean.password': PASSWORD
}
yield FormRequest(url=self.login_url, formdata=form_data, callback=self.parse1)

def parse1(self, response):
inspect_response(response, self)
print("RESPONSE: {}".format(response))

def start_scraper(vin_number):
process = CrawlerProcess()
process.crawl(PartsSpider)
process.start()
Но проблема в том, что они проверяют, активирован ли сеанс, и я получаю сообщение об ошибке: форму невозможно отправить.
Когда я проверяю, В ответ, который я получаю после отправки формы входа, я получаю следующую ошибку:
[img]https://i.sstatic.net /0oxxC.png[/img]

Код на их сайте, который проверяет это, выглядит следующим образом:

Код: Выделить всё

var JSSessionChecker = {
check: function()
{
if (!Ajax.getTransport())
{
alert('NO_AJAX_IN_BROWSER');
}
else
{

new Ajax.Request('/partslink24/checkSessionCookies.do', {
method:'post',
onSuccess: function(transport)
{
if (transport.responseText != 'true')
{
if (Object.isFunction(JSSessionChecker.showError)) JSSessionChecker.showError();
}
},
onFailure: function(e)
{
if (Object.isFunction(JSSessionChecker.showError)) JSSessionChecker.showError();
},
onException: function (request, e)
{
if (Object.isFunction(JSSessionChecker.showError)) JSSessionChecker.showError();
}
});
}
},

showError: function()
{
var errorElement = $('sessionCheckError');
if (errorElement)
{
errorElement.show();
}
}
};
JSSessionChecker.check();
И в случае успеха он возвращает только true.
Есть ли способ активировать сеанс перед отправкой форму?
Заранее спасибо.
ИЗМЕНИТЬ
Страница с ошибкой который я получаю, используя ответ от @fam.
Изображение


Подробнее здесь: https://stackoverflow.com/questions/680 ... -in-scrapy
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»