''»
Я хотел бы выполнить веб-слом для веб-сайта, который требует входа в систему. Я попробовал два разных подхода к коду. Я все еще не могу войти в систему.
'' '
Разработка кода на Python с использованием BeautifulSoup:
Первый подход
import requests
from bs4 import BeautifulSoup
import http.cookiejar
import urllib.request
import urllib.parse
cj = http.cookiejar.CookieJar()
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
urllib.request.install_opener(opener)
authentication_url=
http://127.0.0.1/orangehrm4.3.1/symfony/web/index.php/auth/login'
payload = {'txtUsername': '<username>', 'txtPassword': '<password>'}
data = urllib.parse.urlencode(payload).encode("utf-8")
req = urllib.request.Request(authentication_url, data)
resp = urllib.request.urlopen(req)
contents = resp.read()
Второй подход
import requests
from lxml import html
USERNAME = "<USERNAME>"
PASSWORD = "<PASSWORD>"
LOGIN_URL =
"http://127.0.0.1/orangehrm-4.3.1/symfony/web/index.php/auth/login"
URL = "http://127.0.0.1/orangehrm-4.3.1/symfony/web/index.php/dashboard"
def main():
session_requests = requests.session()
# Getting login csrf token
result = session_requests.get(LOGIN_URL)
tree = html.fromstring(result.text)
crsf_token =
list(set(tree.xpath("//input[@name='_csrf_token']/@value")))[0]
payload = {
"txtUsername": USERNAME,
"txtPassword": PASSWORD,
"_csrf_token": authenticity_token
}
result = session_requests.post(LOGIN_URL, data = payload, headers =
dict(referer = LOGIN_URL))
#URL to scrap
result = session_requests.get(URL)
soup = BeautifulSoup(result.text, 'html.parser')
div = soup.find('div', id='branding')
print(div)
if __name__ == '__main__':
main()
''»
После использования этих методов мы можем получить данные только для страницы входа. Я предполагаю, что мы не можем войти, так как я хочу получить доступ к данным страниц после входа в систему.
Было бы очень полезно выяснить, как можно выполнить очистку веб-страниц после входа в систему с помощью Python, BeautifulSoup.
'' '