2017-02-22 12 views
-2

私はPythonリクエストとBeautifulSoupを使ってWebスクレーパーを試してみました。私はいくつかのソリューションをオンラインで使ってこのウェブサイトにログインしようとしましたが、できませんでした。Pythonを使用してウェブサイトにログインできません

この理由の1つは、フォーム要素が従来の方式を使用していないことです。ウェブサイトコードのスニペットが以下に掲載されています。どんな助けもありがとう。

This image contains the code of the form element

編集1:私はこれにかなり新しいですので、非常に基本ステップで立ち往生されています。私は自分のログイン資格情報のキー値を変更しようとしましたが、それは役に立たないようです。

My code as of now

+0

あなたが試したことを示すかもしれませんか?おそらくコードのスクリーンショットではないでしょうか? –

+0

ログインし、COOKIEを生成してCATEDを生成し、サイトへの別の呼び出しにITを使用します。 – ZiTAL

+0

そのフォームには、非表示のフィールドがあります。あなたがおそらくまた送る必要がある 'authenticity_token' – mata

答えて

-1

あなたはそれが動作することができますなぜいくつかの理由を持つことができます。あなたのコードも高く評価されます。最初の理由は私の心に来る人にはうまくいかず、それはGoogle ChromeやFirefoxのような実際のブラウザをエミュレートする必要があるからです。

実際には、ユーザーエージェントが必要です。デフォルトでは、Pythonユーザエージェントのリクエストはtrue user agentのようにはなりません。

weebサイトのクッキーをキャッチして、ログインに使用する必要がある場合。

あなたはそれを行うには多くの解決策があります。私は2つを説明することができます: - Seleniumは、ブラウザの動作を生成します。 - リクエストを使用しますが、ブラウザのようなすべてのオプションを使用します:ユーザーエージェントを生成し、Cookieも使用します(サーバーはあなたが真のユーザーだと考える必要があります)。

+0

あなたは今述べたことを学ぶための関連リンクを教えてください。 –

+0

あなたはプレビューポストに2つのリンクを持っています(ユーザエージェントの場合は「True user agent」をクリック、このライブラリのdocは「Selenium」をクリックしてください)。 [request](http://docs.python-requests.org/ja/master/user/advanced/)についての完全な解説が必要な場合(リンクのリクエストをクリックしてください)、私よりも英語が優れている:D – Buky

-1

Dayle、質問にあなたのアプローチを投稿する必要があります。

私は、この方法により、クローラを作った

response = urlopen(page_url) 
    if 'text/html' in response.getheader('Content-Type'): 
     print("hello 123") 
     html_bytes = response.read() 
     html_string = html_bytes.decode("utf-8") 

とBeautifulSoupにこのhtml_stringを可決しました。

soup = BeautifulSoup(html_string, 'html.parser') 
html_string = soup.prettify() 

これははるかに簡単だと思います。

関連する問題