Попытка очистить токен подлинности из метатега с помощью запросов и красивого супа. - PullRequest
0 голосов
/ 11 февраля 2020

Я пытаюсь получить значение 'content' из:

<meta content="trjYXw9aFup1tXoiuKixHZwcRLBEXeKOH6tqN7VuzvL7cSti/RuS4w06osJ46PwIp3Q+swKbcNeeqqhm7I7cig==" name="csrf-token"/>
import requests
from bs4 import BeautifulSoup

with requests.Session() as c:
    url = 'https://www.teamtreehouse.com/'
    r=requests.get(url)
    soup = BeautifulSoup(r.text, 'lxml')
    csrfToken = soup.find('meta', attrs={'name': 'csrf-token'})
    authenticity_token = csrfToken.findAll('content')

, когда я print(csrfToken) получаю <meta content="trjYXw9aFup1tXoiuKixHZwcRLBEXeKOH6tqN7VuzvL7cSti/RuS4w06osJ46PwIp3Q+swKbcNeeqqhm7I7cig==" name="csrf-token"/>

Теперь, когда я пытаюсь print(authenticity_token) я получаю []

Я пытаюсь получить ценность контента самостоятельно, может кто-нибудь посоветовать, пожалуйста.

1 Ответ

1 голос
/ 11 февраля 2020

Вы должны использовать метод get(), чтобы получить значение атрибута content. Вы используете find_all () , который получает все вхождения тега внутри элемента супа, в котором вы запускаете метод.

Вот так:

authenticity_token = csrfToken.get('content');

результат

print(authenticity_token)

будет

trjYXw9aFup1tXoiuKixHZwcRLBEXeKOH6tqN7VuzvL7cSti/RuS4w06osJ46PwIp3Q+swKbcNeeqqhm7I7cig==
...