Python爬虫疑问:如何获取Justia页面中无明显标识的案件URL?
如何提取Justia案件搜索页中的案件URL?
你已经能成功获取case_number,要提取案件对应的URL,只需定位到目标<a>标签(class为case-name),再获取其href属性即可,原代码的错误在于未正确定位标签且属性获取方式有误。
修正后的代码
from bs4 import BeautifulSoup import requests html_text = requests.get("https://dockets.justia.com/search?parties=Novo+Nordisk").text soup = BeautifulSoup(html_text, "lxml") cases = soup.find_all("div", class_ = "has-padding-content-block-30 -zb") for case in cases: # 获取案件编号 case_number = case.find("span", class_ = "citation").text.replace(" ","").strip() # 定位到包含URL的a标签 case_link = case.find("a", class_ = "case-name") # 提取href属性,用get方法避免标签不存在时报错 case_url = case_link.get("href") if case_link else "未找到URL" print(f"Case No.: {case_number}") print(f"Case URL: {case_url}") print("")
关键说明
- 用
case.find("a", class_ = "case-name")精准定位到包含案件URL的<a>标签 - 使用
.get("href")获取属性值,比直接用["href"]更安全,当标签不存在时不会抛出异常,而是返回None(这里添加了判断,返回友好提示) - 保留了你原本获取
case_number的逻辑,仅补充URL提取部分
内容的提问来源于stack exchange,提问作者PressMeister
相关产品推荐
相关产品推荐

