を把握正しいURLにポストしてからhttp://pro.wialon.com/service.html
を得るカント:
data = {"user": "demo",
"passw": "demo",
"submit": "Enter",
"lang": "en",
"action": "login"}
head = {"User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"}
with requests.Session() as c:
c.get('http://pro.wialon.com/')
url = 'http://pro.wialon.com/login_action.html'
c.post(url, data=data, headers=head)
print(c.get("http://pro.wialon.com/service.html").content)
あなたはネットワークタブの下にクロムのdevのツールにポストを見ることができます。また
![enter image description here](https://i.stack.imgur.com/5I58s.png)
ポストのデフォルトを要望等を取得するには、あなたがここでそれを指定する必要はありませんので、リダイレクトを可能にすることです。
あなたは、ログインページのソースにフォームアクション見ることができます:
<form class="login_bg_form" id="login_form" action="login_action.html" method="POST">
の代わりに、我々は、フォームからそれを解析することができますパスをハードコーディング、使用BS4:
import requests
from bs4 import BeautifulSoup
from urlparse import urljoin
data = {"user": "demo",
"passw": "demo",
"submit": "Enter",
"lang": "en",
"action": "login"}
head = {"User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"}
with requests.Session()as c:
soup = BeautifulSoup(c.get('http://pro.wialon.com/').content)
redir = soup.select_one("#login_form")["action"]
url = 'http://pro.wialon.com/login_action.html'
c.post(url, data=data, headers=head)
print(c.get(urljoin("http://pro.wialon.com/", redir)).content)
を唯一の問題は、データが大部分がajaxリクエストを使用して作成されていることです。データをスクラップする場合は、リクエストを模倣する必要があります。
あなたは十分な情報を教えてくれませんでした。うまくいかなかったことを私たちに伝えることは良いスタートになるでしょう。私が確かに知っていることは、このウェブサイトはほとんどのウェブサイトのように*おそらく*クッキーを使用しており、あなたのリクエストにクッキージャーを渡さないと、ログインできないかもしれないということです。 –
また、もう一度やろうとしていますが、一度ログインするとほとんどのことをやろうとしている場合は、 'browsercookie'モジュールを見ることができます。これにより、Firefox/Chromeでログインし、Webブラウザで作成したセッションをプログラムで使用できます。 –