Python BeautifulSoup.find_all()不会打印所有结果

Python BeautifulSoup.find_all()不会打印所有结果,python,web-scraping,beautifulsoup,python-requests,Python,Web Scraping,Beautifulsoup,Python Requests,我正在做一个网页抓取项目,我想抓取一个特定表中的所有元素。这是我想从中提取数据的地方 这是到目前为止我的代码 url = 'https://www.alkemlabs.com/rx-products.php' response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') for tr in soup.find_all('tr'): tds = tr.find_all('td') t

我正在做一个网页抓取项目,我想抓取一个特定表中的所有元素。这是我想从中提取数据的地方

这是到目前为止我的代码

url = 'https://www.alkemlabs.com/rx-products.php'
response = requests.get(url)

soup = BeautifulSoup(response.text, 'html.parser')
for tr in soup.find_all('tr'):
    tds = tr.find_all('td')
    ths = tr.find_all('th')
    try:
        print(f'Brand: {ths[0].text}, Therapy Area - : {tds[0].text}, SKU - : {tds[1].text}, Strength: {tds[2].text}')
    except: continue
代码的输出如下所示

品牌:XONE SB,治疗区域-:抗感染,SKU-:XONE SB 250MG注射液(小瓶),浓度:头孢曲松250MG+舒巴坦125MG
品牌:XONE SB,治疗部位-:抗感染,SKU-:XONE SB 500 MG注射液(小瓶),浓度:头孢曲松500 MG+舒巴坦250 MG
品牌:Acuflam,治疗区域-:止痛消炎药,SKU-:Acuflam MR片剂(10片),强度:乙酰氯芬酸100毫克+扑热息痛325毫克+氯唑沙宗250毫克
代码只从三个表中打印出三行,而表中还有更多的行


为什么会发生这种情况?

这是因为HTML的结构与代码中预期的不一样。因此,许多呼叫都会被阻塞


在for循环中打印(tr),您将了解每行的结构。然后您可以根据需求修改代码

这是因为HTML的结构与您在代码中期望的不同。因此,许多呼叫都会被阻塞

在for循环中打印(tr),您将了解每行的结构。然后,您可以根据要求修改代码

导入请求
从bs4导入BeautifulSoup
def主(url):
r=请求。获取(url)
soup=BeautifulSoup(r.content'html.parser')
target=soup.findAll(“th”,scope=“row”)
对于目标中的焦油:
打印(“品牌:{:
导入请求
从bs4导入BeautifulSoup
def主(url):
r=请求。获取(url)
soup=BeautifulSoup(r.content'html.parser')
target=soup.findAll(“th”,scope=“row”)
对于目标中的焦油:

print(“Brand:{:谢谢。在打印完第一个表中的所有元素后,是否有任何方法可以中断?然后您可以选择第一个表并对其进行解析。您还可以使用pandas.read_html并选择第一个表;)谢谢。打印完第一个表中的所有元素后,是否有任何方法可以中断?然后您可以选择第一个表并对其进行解析。您还可以使用pandas.read_html并选择第一个表;)