如何使用name标签替代id标签爬取SEC Edgar 10Q文件中的地址
解决方案:通过name标签提取SEC 10Q文档中的地址
要避开id标签提取目标地址,你可以利用BeautifulSoup的属性查找功能定位带name属性的元素,具体实现如下:
核心代码修改
from requests_html import HTMLSession from bs4 import BeautifulSoup session = HTMLSession() page = session.get('https://www.sec.gov/Archives/edgar/data/1652044/000165204419000032/goog10-qq32019.htm') soup = BeautifulSoup(page.content, 'html.parser') # 替换成目标元素实际的name属性值 target_element = soup.find(attrs={"name": "此处填入正确的name属性值"}) if target_element: # 提取并清理文本 print(target_element.text.strip()) else: print("未找到匹配name属性的元素")
关键注意事项
- 准确获取name属性值:直接查看目标页面的HTML源码,找到包含
1600 Amphitheatre Parkway的元素(或其关联父/子元素)的name属性值,确保完全匹配(包括大小写、特殊字符)。 - 处理元素嵌套场景:如果目标地址文本不在直接带
name属性的元素内,先定位带name属性的父元素,再提取子元素的文本。示例:
# 假设name属性在父容器上 parent_container = soup.find(attrs={"name": "businessAddress"}) if parent_container: address_text = parent_container.find(class_="text").text.strip() print(address_text)
- CSS选择器替代方案:也可以用更简洁的CSS选择器语法定位:
target_element = soup.select_one('[name="正确的name属性值"]')
内容的提问来源于stack exchange,提问作者Sushmitha
相关产品推荐
相关产品推荐

