PYTHON BS4 НЕ МОЖЕТ НАЙТИ ТЕГ
def get_info_by_headers():
session = requests.Session()
responseq = session.get('https://2ip.ru/', headers=headers).text
soup = BeautifulSoup(responseq, 'lxml')
user_ip = soup.find('div', _class='main-ip-history').find('div', _class='main-ip-history__container').find('ul', _class='main-ip-history__list').find_all('li')[1].find('span', _class='main-ip-history__container__ip').text.strip() Вот код, когда я пытаюсь найти ip то мне выдает ошибку -
AttributeError: 'NoneType' object has no attribute 'find'.
Хотя тег div с классом 'main-ip-history' существует на этой странице.
Ниже есть фото
Помогите пожалуйста
Проблема в вашем коде заключается в использовании неправильного атрибута _class вместо class_ в методе find. Попробуйте исправить ваш код следующим образом:
import requests
from bs4 import BeautifulSoup
def get_info_by_headers():
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
}
session = requests.Session()
responseq = session.get('https://2ip.ru/', headers=headers).text
soup = BeautifulSoup(responseq, 'lxml')
user_ip = soup.find('div', class_='main-ip-history').find('ul', class_='main-ip-history__list').find_all('li')[1].find('span', class_='main-ip-history__container__ip').text.strip()
return user_ip
print(get_info_by_headers()) Обратите внимание на следующие изменения:
Заменил _class на class_ в методах find и find_all.
Убрал лишние вызовы find для промежуточных контейнеров, которые не нужны для поиска нужного элемента.
Попробуйте выполнить этот код и проверьте, решена ли проблема.
ты ищешь div с классом, в твоем случае нужно искать span
def get_info_by_headers():
session = requests.Session()
responseq = session.get('https://2ip.ru/').text
soup = BeautifulSoup(responseq, 'lxml')
userip=soup.find('span', class_='main-ip-history__container__ip').text.strip()
return(userip) на выходе IP
Зачем делать эту цепочку поиска если сразу можно за 1 раз?
user_ip = soup.find('span', _class='main-ip-history__container__ip').text.strip() AttributeError: 'NoneType' object has no attribute 'text'
Не ищет