我正在尝试使用美丽汤从网站(程序名称和程序ID和位置)中抓取信息



我正在尝试从网站(程序名称和程序ID(中抓取信息,但它返回空列表。我不确定我是否混淆了语法,但这就是我所拥有的soup.find_all('h3', class_='ama__h3'(

网站链接 https://freida.ama-assn.org/Freida/#/programs?program=residencies&specialtiesToSearch=140

from urllib.request import urlopen
from bs4 import BeautifulSoup as BS
import pandas as pd
from urllib.parse import urlparse, urlsplit
import requests
res = requests.get('https://freida.ama-assn.org/Freida/#/programs?program=residencies&specialtiesToSearch=140')
soup = bs4.BeautifulSoup(res.text, 'html5lib')
print(soup.prettify())
soup.find_all('h3', class_='ama__h3')

你的错误是因为你正在使用html5lib进行解析。对于任何格式良好的 html,解析器的选择并不重要。但是,对于格式不正确的html(像这个(,html5lib似乎有问题。您应该使用html.parserlxml(显然html.parser更安全(

但是,此代码正在执行您想要执行的操作:

soup = BeautifulSoup(res.text, 'html.parser')
programs = soup.find_all("a", class_='ama__promo--background')
for program in programs:
    program_name = program.find("h3").text
    program_id = program.find_all("small")[-1].text.split(': ')[1].strip()
    print(program_name, program_id

相关内容

最新更新