вы можете использовать Selenium , так как выглядит, что страница динамическая.Вы все еще можете использовать Beautifulsoup для анализа, если хотите.Когда дело доходит до тегов в виде таблиц, я выбираю панды для чтения HTML.вам придется немного поработать с разбиением текста / столбцов и тем, что не в первом столбце, что не должно быть слишком сложно.)
Дайте мне знать, если это работает для вас.
import pandas as pd
from selenium import webdriver
url = "https://www.greatschools.org/pennsylvania/bethlehem/schools/?tableView=Overview&view=table"
driver = webdriver.Chrome('C:\chromedriver_win32\chromedriver.exe')
driver.get(url)
html = driver.page_source
table = pd.read_html(html)
df = table[0]
driver.close()
Вывод
print (table[0])
School ... District
0 9/10Above averageSouthern Lehigh Intermediate ... ... Southern Lehigh School District
1 8/10Above averageHanover El School3890 Jackson... ... Bethlehem Area School District
2 8/10Above averageLehigh Valley Charter High Sc... ... Lehigh Valley Charter High School For The Arts
3 6/10AverageCalypso El School1021 Calypso Ave, ... ... Bethlehem Area School District
4 6/10AverageMiller Heights El School3605 Allen ... ... Bethlehem Area School District
5 6/10AverageAsa Packer El School1650 Kenwood Dr... ... Bethlehem Area School District
6 6/10AverageLehigh Valley Academy Regional Cs15... ... Lehigh Valley Academy Regional Cs
7 5/10AverageNortheast Middle School1170 Fernwoo... ... Bethlehem Area School District
8 5/10AverageNitschmann Middle School1002 West U... ... Bethlehem Area School District
9 5/10AverageThomas Jefferson El School404 East ... ... Bethlehem Area School District
10 4/10Below averageJames Buchanan El School1621 ... ... Bethlehem Area School District
11 4/10Below averageLincoln El School1260 Gresham... ... Bethlehem Area School District
12 4/10Below averageGovernor Wolf El School1920 B... ... Bethlehem Area School District
13 4/10Below averageSpring Garden El School901 No... ... Bethlehem Area School District
14 4/10Below averageClearview El School2121 Abing... ... Bethlehem Area School District
15 4/10Below averageLiberty High School1115 Linde... ... Bethlehem Area School District
16 4/10Below averageEast Hills Middle School2005 ... ... Bethlehem Area School District
17 4/10Below averageFreedom High School3149 Chest... ... Bethlehem Area School District
18 3/10Below averageMarvine El School1425 Livings... ... Bethlehem Area School District
19 3/10Below averageWilliam Penn El School1002 Ma... ... Bethlehem Area School District
20 3/10Below averageLehigh Valley Dual Language C... ... Lehigh Valley Dual Language Charter School
21 2/10Below averageBroughal Middle School114 Wes... ... Bethlehem Area School District
22 2/10Below averageDonegan El School1210 East 4t... ... Bethlehem Area School District
23 2/10Below averageFountain Hill El School1330 C... ... Bethlehem Area School District
24 Currently unratedSt. Anne School375 Hickory St... ... NaN
[25 rows x 7 columns]
Теперь, если вы все еще хотите использовать BeautifulSoup, потому что, возможно, вы пытаетесь также извлечь некоторые из этих ссылок или другие теги внутритаблицу (может быть, просто получить таблицу недостаточно для того, что вы хотите сделать?), вы можете просто продолжить, как обычно, с bs4, когда получите page_response
.
from bs4 import BeautifulSoup
from selenium import webdriver
url = "https://www.greatschools.org/pennsylvania/bethlehem/schools/?tableView=Overview&view=table"
driver = webdriver.Chrome('C:\chromedriver_win32\chromedriver.exe')
driver.get(url)
page_response = driver.page_source
content = BeautifulSoup(page_response,'html.parser')
table=content.find_all('table')
table
driver.close()