로그인된 웹 사이트에서 복제

개시하다


접속한 사이트의 정보를 커튼으로 얻는 것은 좀 힘들기 때문에 자신의 비망록도 일찌감치 썼다.
이번에는 이유가 있어서Selenium 사용할 수 없어서requestsBeautifulSoup.

절차.


로그인에 필요한 매개 변수 확인


먼저 로그인하기 전의 URL을 찾아서 HTML 요소를 확인합니다.
주의
import requests
from bs4 import BeautifulSoup

# ログイン前のurl
login_url = "{url}"
response = requests.get(login_url)
soup = BeautifulSoup(response.text, 'lxml')
soup의 탭 섹션
이 레이블에 저장된 값은 form입니다.
매개변수 키는 실제 입력 값을 값으로 설정합니다.input
<form action="https://~" class="mt-3" id="login" method="post">
<input id="anchor" name="anchor" type="hidden" value=""/>
<script>document.getElementById('anchor').value = location.hash;</script>
<input name="logintoken" type="hidden" value="qCiEJuqAlux7qVABUVgqAmBfkCUjLcNT"/>
<div class="form-group">
<label class="sr-only" for="username">
                                    ユーザ名
                            </label>
<input autocomplete="username" class="form-control" id="username" name="username" placeholder="ユーザ名" type="text" value=""/>
</div>
<div class="form-group">
<label class="sr-only" for="password">パスワード</label>
<input autocomplete="current-password" class="form-control" id="password" name="password" placeholder="パスワード" type="password" value=""/>
</div>
<div class="rememberpass mt-3">
<input id="rememberusername" name="rememberusername" type="checkbox" value="1"/>
<label for="rememberusername">ユーザ名を記憶する</label>
</div>
<button class="btn btn-primary btn-block mt-3" id="loginbtn" type="submit">ログイン</button>
</form>

로그인


session = requests.session()
payload = {
  "username": "{ユーザー名}",
  "password": "{パスワード}",
  "rememberusername": 1,
  "loginbtn": "ログイン"
}
r = session.post(login_url, data=payload)
soup = BeautifulSoup(r.content, "lxml")
로그인을 위해서는 로그인 단추를 누르는 동작을 표시하는 파라미터가 필요합니다name는 탭에 포함된 키soupbotton의 값을 포함한다.
id에는 로그인 후 사이트 정보를 나타내는 HTML이 저장되어 있습니다.

끝맺다


로그인에 필요한 매개 변수를 찾기가 매우 어렵다😓
같은 상황에 처한 사람을 도울 수 있다면, 나는 매우 기쁠 것이다!

좋은 웹페이지 즐겨찾기