技术求助:如何用Python抓取指定网页内的10,599数值
网页表格数据抓取实现方案
方法一:使用BeautifulSoup4(静态网页抓取)
- 先安装所需依赖:
pip install requests beautifulsoup4
- 实现代码:
import requests from bs4 import BeautifulSoup # 目标网页URL url = "https://www.immd.gov.hk/eng/stat_20221001.html" try: # 发送请求获取网页内容 response = requests.get(url) response.encoding = "utf-8" # 设置编码确保内容正常解析 soup = BeautifulSoup(response.text, "html.parser") # 精准定位目标<td>标签,匹配class、headers、data-label三个属性 target_td = soup.find("td", attrs={ "class": "hRight", "headers": "Total_Departure", "data-label": "Total" }) if target_td: # 提取并打印目标数值 print("抓取到的数值:", target_td.get_text(strip=True)) else: print("未找到目标元素") except Exception as e: print(f"抓取过程出错:{e}")
方法二:使用Selenium(兼容动态网页)
如果网页存在动态渲染场景,可使用Selenium模拟浏览器操作:
- 安装依赖:
pip install selenium
注意:需下载对应浏览器版本的驱动(如ChromeDriver),将其放在Python可执行路径下或配置系统环境变量。
- 实现代码:
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.chrome.options import Options # 配置浏览器无头模式(可选,不弹出可视化窗口) chrome_options = Options() chrome_options.add_argument("--headless=new") try: # 启动浏览器并访问目标网页 driver = webdriver.Chrome(options=chrome_options) driver.get("https://www.immd.gov.hk/eng/stat_20221001.html") # 通过CSS选择器定位目标<td>标签 target_td = driver.find_element(By.CSS_SELECTOR, 'td.hRight[headers="Total_Departure"][data-label="Total"]') # 提取并打印目标数值 print("抓取到的数值:", target_td.text.strip()) except Exception as e: print(f"抓取过程出错:{e}") finally: # 确保浏览器关闭 if 'driver' in locals(): driver.quit()
内容的提问来源于stack exchange,提问作者Walkprints
相关产品推荐
相关产品推荐

