如何提取网页源码中隐藏的data-warehouse-id属性值?
提取网页隐藏属性值与API数据抓取方案
一、解决data-warehouse-id提取失败的问题
你原代码的问题在于误用了get_text()方法——这个方法是用来提取标签的文本内容,而非获取标签属性。正确的做法是先定位到目标<div>,再读取它的data-warehouse-id属性。
修正后的BeautifulSoup代码
from urllib import request from bs4 import BeautifulSoup symbol = input("Enter symbol of the company: ") url = f"https://www.screener.in/company/{symbol}/consolidated/" response = request.urlopen(url) page_source = response.read().decode('utf-8') soup = BeautifulSoup(page_source, 'html.parser') # 精准定位id为company-info的div标签 company_info_div = soup.find('div', id='company-info') if company_info_div: warehouse_id = company_info_div.get('data-warehouse-id') print(f"Data Warehouse ID: {warehouse_id}") else: print("未找到目标div标签")
用lxml XPath实现的方案
如果偏好使用XPath,也可以直接定位属性值:
from urllib import request from lxml import etree symbol = input("Enter symbol of the company: ") url = f"https://www.screener.in/company/{symbol}/consolidated/" response = request.urlopen(url) page_source = response.read().decode('utf-8') tree = etree.HTML(page_source) # 通过XPath直接提取属性值 warehouse_id_list = tree.xpath('//div[@id="company-info"]/@data-warehouse-id') if warehouse_id_list: print(f"Data Warehouse ID: {warehouse_id_list[0]}") else: print("未找到目标属性")
二、抓取API加载的网页数据
对于依赖后端API动态加载数据的网页,有两种高效处理方式:
1. 直接调用目标API
- 打开浏览器开发者工具(F12),切换到「网络」标签页,刷新页面
- 筛选「XHR/Fetch」类型的请求,找到返回目标数据的API接口
- 分析API的请求要求(如必要的请求头、Token、查询参数等)
- 使用Python的
requests库直接发送请求,解析返回的JSON数据(这种方式效率远高于页面渲染)
2. 用无头浏览器渲染页面
如果API有复杂验证逻辑,或数据需通过JS动态渲染到DOM,可使用无头浏览器(如Playwright、Selenium)模拟完整的页面加载流程,待数据渲染完成后提取内容:
from playwright.sync_api import sync_playwright symbol = input("Enter symbol of the company: ") url = f"https://www.screener.in/company/{symbol}/consolidated/" with sync_playwright() as p: browser = p.chromium.launch(headless=True) page = browser.new_page() page.goto(url) # 等待目标元素加载完成 page.wait_for_selector('#company-info') # 获取目标属性值 warehouse_id = page.get_attribute('#company-info', 'data-warehouse-id') print(f"Data Warehouse ID: {warehouse_id}") browser.close()
内容的提问来源于stack exchange,提问作者rahul dhiman
相关产品推荐
相关产品推荐

