Python 以字符串形式发送电子邮件

Python 以字符串形式发送电子邮件,python,scrapy,Python,Scrapy,我需要使用scrapy登录网站,并且我需要使用电子邮件作为用户名,但是当它使用用户名而不是电子邮件中的@符号时,它会使用%40。有没有办法防止这种情况?因为这个问题,我现在显然无法登录 LoginSpider.py import scrapy from ..items import NameItem class LoginSpider(scrapy.Spider): name = "LoginSpider" start_urls = ["https://www.starcity

我需要使用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>
2019-06-20 16:23:07[scrapy.extensions.telnet]信息:telnet控制台监听127.0.0.1:6027
2019-06-20 16:23:07[刮屑核心引擎]调试:爬网(200)(参考:无)
2019-06-20 16:23:19[刮屑核心引擎]调试:爬网(200)(参考:https://www.starcitygames.com/login)
2019-06-20 16:23:19[scrapy.core.scraper]调试:从

根据您的日志,您似乎在页面上调用了错误的表单,而不是登录表单

尝试在代码中使用以下命令指定它:

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
    )
def解析(self,response):
从_响应返回scrapy.FormRequest.from(
回答
formcss=“#现有用户表单”#