Email как строка - PullRequest
       9

Email как строка

0 голосов
/ 20 июня 2019

Мне нужно войти на веб-сайт, используя scrapy, и мне нужно использовать электронную почту в качестве имени пользователя, но когда он использует имя пользователя вместо символа @ в электронном письме, вместо него появляется %40. Есть ли способ предотвратить это? Потому что я явно не могу войти сейчас из-за этой проблемы.

LoginSpider.py

import scrapy
from ..items import NameItem

class LoginSpider(scrapy.Spider):
    name = "LoginSpider"
    start_urls = ["https://www.starcitygames.com/login"]

    def parse(self, response):

        return scrapy.FormRequest.from_response(
        response,
        formdata={'ex_usr_email': 'example@123.com', 'ex_usr_pass': 'password'},
        callback=self.after_login
        )


    def after_login(self, response):
        item = NameItem()
        item["Name"] = response.css("div.column_data::text").get()
        return item

Частичный вывод

2019-06-20 16:23:07 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6027
2019-06-20 16:23:07 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.starcitygames.com/login> (referer: None)
2019-06-20 16:23:19 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.starcitygames.com/results?name=&go=GO&ex_usr_email=example%40123.com&ex_usr_pass=password> (referer: https://www.starcitygames.com/login)
2019-06-20 16:23:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.starcitygames.com/results?name=&go=GO&ex_usr_email=example%40123.com&ex_usr_pass=password>

1 Ответ

1 голос
/ 21 июня 2019

По вашему журналу кажется, что вы вызываете неправильную форму на странице, а не форму входа.

Попробуйте указать ее в коде с помощью:

def parse(self, response):
    return scrapy.FormRequest.from_response(
        response,
        formcss='#existing_users form',  # <- set this selector for form
        formdata={'ex_usr_email': 'example@123.com', 'ex_usr_pass': 'password'},
        callback=self.after_login
    )

Теперь я получил html-ответс:

Ваш адрес электронной почты и / или пароль не совпадают с адресом электронной почты и / или паролем, указанными для этой учетной записи.Пожалуйста, попробуйте еще раз.

Но я уверен, что если вы введете правильные учетные данные, все будет хорошо.

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