#python #html #class #beautifulsoup
#python #HTML #класс #beautifulsoup
Вопрос:
Я полный новичок, который создавал только базовые проекты на Python. Прямо сейчас я создаю скребок на Python с помощью bs4, чтобы помочь мне читать истории успеха с веб-сайта. Все эти истории успеха находятся в таблице, поэтому я подумал, что найду html-тег с надписью table, который будет охватывать всю таблицу.
Однако все это просто <div и <span class , и когда я использую soup.find(«div») или («span»), он возвращает только одно слово «div» или «span». Это то, что у меня есть до сих пор, и я знаю, что это неправильно или настроено неправильно, но я слишком неопытен, чтобы понять, почему.
from bs4 import BeautifulSoup
from urllib.request import Request, urlopen
import requests
req = Request('https://www.calix.com/about-calix/success-stories.html', headers={'User-Agent': 'Mozilla/5.0'})
webpage = urlopen(req).read()
soup = BeautifulSoup(webpage, "lxml")
soup.find("div", {"id": "content-calix-en-site-prod-home-about-calix-success-stories-jcr-content"})
print('div')
Я просмотрел несколько руководств по использованию bs4, и я успешно очистил базовые веб-сайты, но все, что я могу сделать для этого, это получить ВЕСЬ html, а не те фрагменты, которые мне нужны (только истории успеха).
Ответ №1:
При печати 'div'
убедитесь, что вы печатаете soup, поскольку soup обновляется всякий раз, когда вы что-то в нем находите.
Вам следует взглянуть на документацию bs4.
Ответ №2:
soup.find("div", {"id": "content-calix-en-site-prod-home-about-calix-success-stories-jcr-content"})
Здесь вы вызываете soup.find()
, но не сохраняете результаты в переменную, поэтому результаты теряются.
print('div')
И здесь вы печатаете литеральную строку div
. Я не думаю, что это то, что вы имели в виду.
Попробуйте что-то вроде этого:
div = soup.find("div", {"id": "..."})
print(div)
Комментарии:
1. Спасибо вам за вашу помощь! Я попробовал это, но на этот раз он вернулся с «None». Есть ли разрыв между тем, что я только что очистил, и моим новым запросом? Похоже, что он вообще не читает html.