登录网站,然后网络抓取数据 (Python)

Login to website and then web scrape data (Python)

恳请您纠正我这里的错误。我获得的 html 代码又是一个带有登录表单的页面。我在这里的意思是在一个会话期间获得一个令牌,然后用它来登录。我打算做的是使用 bs4 来收集一些数据。

import bs4
import requests

session = requests.session
with requests.Session() as s:
    url = 'https://www.planetplus.pl/'
    res = requests.get(url)
    data = res.text
    soup = bs4.BeautifulSoup(data, 'lxml')
    token = soup.find_all('input', attrs={'name': '__RequestVerificationToken'})[0]['value']
    print(token)
    payload = {'UserName': 'xxx', 'Password': 'yyy',
               '__RequestVerificationToken': token}
    p = s.post(url, data=payload)
    r = s.get('https://www.planetplus.pl/moje-konto-cashback')
    print(r.text)

网站link:https://www.planetplus.pl/

嗯,老实说我是初学者,所以如果你能指正我甚至详细说明,建议如何做到最好,那就太好了!

此外,网站 http://www.exsite.pl/ 的程序有多少不同,因为我删除了登录凭据字典中的令牌部分,并且输出的是访问受限页面 html 代码。并且不判断网站,首先发现不同的登录类型,至少对我来说不同 ;)

import requests

with requests.Session() as s:
    session = requests.session
    url = 'http://exsite.pl//'
    payload = {'login_name': 'xxx', 'login_password': 'yyy!'}
    p = s.post(url, data=payload)
    #print(p.text)
    r = s.get('http://www.exsite.pl/filmy_video_movies/filmy-dvdrip-brrip/1378773-ukryte-piekno-collateral-beauty-2016-plsubbed480pbrripxvidac3-krt-napisy-pl.html')
    print(r.text)

https://www.planetplus.pl/

的工作示例
import bs4
import requests


BASE_URL = 'https://www.planetplus.pl/'
LOGIN_URL = BASE_URL + 'logowanie'


with requests.Session() as session:
    res = session.get(BASE_URL)

    soup = bs4.BeautifulSoup(res.text, 'lxml')
    token = soup.find_all('input', attrs={'name': '__RequestVerificationToken'})[0]['value']
    payload = {'UserName': '6r5anl+fnmps358bvh8@sharklasers.com', 'Password': 'qwerty',
               '__RequestVerificationToken': token}

    session.post(LOGIN_URL , data=payload)
    res = session.get(BASE_URL)
    print(res.text)