Python 以字符串形式发送电子邮件
我需要使用scrapy登录网站,并且我需要使用电子邮件作为用户名,但是当它使用用户名而不是电子邮件中的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
@
符号时,它会使用%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=“#现有用户表单”#