AliceWeb2から情報を取得しようとしています。これを行うには、ログインする必要がありますが、できません。私は、以下に示すように、リクエストメソッド:POSTを持つページのために、Google Chromeのinspectツールにユーザ、パス、検索を配置します。FormRequestログイン時に問題が発生する
だから、
、次のコードを使用して:すべての
AliceWeb2から情報を取得しようとしています。これを行うには、ログインする必要がありますが、できません。私は、以下に示すように、リクエストメソッド:POSTを持つページのために、Google Chromeのinspectツールにユーザ、パス、検索を配置します。FormRequestログイン時に問題が発生する
だから、
、次のコードを使用して:すべての
まず、代わりにreturn
のyield
を使用して、要求を模倣しようとしている時はいつでも:
from scrapy.item import Item, Field
from scrapy.http import FormRequest
from scrapy.spider import Spider
from scrapy.utils.response import open_in_browser
from scrapy import Request
class AliceWeb2(Spider):
name = "login"
# Start on the welcome page
def start_requests(self):
return [Request(
"http://aliceweb.mdic.gov.br//usuario/login/",
callback=self.parse_welcome)]
# Post welcome page's first form with the given user/pass
def parse_welcome(self, response):
formdata = {'logUser': 'rtadewald',
'logPass': '123'}
return FormRequest.from_response(
response,
formdata=formdata)
を、私はこれを得ましたDev Toolsを開き、そのURLのcURLをコピーしてからhttps://curl.trillworks.com/ウェブサイトにアクセスし、Pythonコードを入手して、そのコードをScrapyに再利用してください。
class AliceWeb2(Spider):
name = "login"
# Start on the welcome page
def start_requests(self):
headers = {
'Origin': 'http://aliceweb.mdic.gov.br',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'en-US,en;q=0.9',
'Upgrade-Insecure-Requests': '1',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36',
'Content-Type': 'application/x-www-form-urlencoded',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
'Cache-Control': 'max-age=0',
'Referer': 'http://aliceweb.mdic.gov.br/usuario/recuperar-senha',
'Connection': 'keep-alive',
'DNT': '1',
}
yield Request('http://aliceweb.mdic.gov.br//usuario/login?tx_usuario=ABC&tx_senha=ABC', callback=self.parse_welcome, headers=headers, data=data, method="POST")
def parse_welcome(self, response):
#do something here
EDIT 1: 私は開発ツールで要求を観察すると、私はそれらのパラメータが送信されていた見て、スクリーンショットのFORM DATA
を参照してください。
(別のヒント): preserver log
をチェックすると、ログイン後に他のページにリダイレクトされた場合の前のページのリクエストが表示されます。代わりに、スクリーンショットの
あなたのエラーメッセージを投稿!どうもありがとうございます! ちょっと質問すると、単にhttp://aliceweb.mdic.gov.br//usuario/login?tx_usuario = ABC&tx_senha = ABC '**にリクエストする必要があることはどうでしたか? * http://aliceweb.mdic.gov.br//usuario/login** ありがとう! 編集1:「ログを保存する」をチェックすると、表示されているようにフォームデータが表示されません。他の選択肢はありますか? https://i.stack.imgur.com/RBwR2.png –
@RodrigoSoaresTadewaldは不可能です...これらのパラメータが表示されるはずです...どのクロムバージョンを使用していますか?それはすべてのクロムバージョンBTWのそれらのパラメータを表示する必要があります....間違ったユーザー/パスの組み合わせを入力しようとし、それらが表示されるかどうかを試してみてください – Umair
、それは作品 – parik