Det ser ud til, at problemet med alecxes kode er, at den returnerer en tabel, der er en direkte søskende til h2, men den du ønsker er faktisk inden for en div (som er h2s søskende). Dette virkede for mig:
import requests
from bs4 import BeautifulSoup
urls = [
'https://www.hl7.org/fhir/valueset-account-status.html',
'https://www.hl7.org/fhir/valueset-activity-reason.html',
'https://www.hl7.org/fhir/valueset-age-units.html'
]
def extract_table(url):
r = requests.get(url)
soup = BeautifulSoup(r.content, 'lxml')
h2 = soup.find(lambda elm: elm.name == 'h2' and 'Content Logical Definition' in elm.text)
div = h2.find_next_sibling('div')
return div.find('table')
for url in urls:
print extract_table(url)