如何使用Beautiful Soup从区块链浏览器中精准抓取指定地址信息?
区块链浏览器定向爬取地址数据方法
- 首先确定目标地址的DOM匹配规则:
打开对应页面后,右键你需要爬取的地址文本,选择「检查」打开开发者工具元素面板,在对应高亮的DOM节点上右键,选择「复制」-「复制选择器」,就能拿到精准的CSS选择器,后续直接用这个选择器定位元素即可。 - 静态页面爬取(地址直接渲染在HTML源码里):
用requests+BeautifulSoup组合即可,参考代码:from bs4 import BeautifulSoup import requests # 替换为目标页面地址 target_url = "https://xxx.区块浏览器域名/xxx" # 替换为你自己浏览器的User-Agent,避免被反爬拦截 headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36" } resp = requests.get(target_url, headers=headers) soup = BeautifulSoup(resp.text, "lxml") # 把下面的选择器替换为你刚才复制的CSS选择器 addr_elements = soup.select("你复制的CSS选择器") # 按对应公链地址长度过滤无效内容,比如以太坊地址是42位、BTC地址是26-34位 addr_list = [elem.get_text(strip=True) for elem in addr_elements if 26 <= len(elem.get_text(strip=True)) <= 44] - 动态页面爬取(地址由JS异步加载,HTML源码里找不到):
用Playwright/Pyppeteer这类模拟浏览器的工具爬取,参考Playwright代码片段:from playwright.sync_api import sync_playwright with sync_playwright() as p: browser = p.chromium.launch(headless=False) page = browser.new_page() page.goto("目标页面地址") # 等待地址元素加载完成,替换成你的CSS选择器 page.wait_for_selector("你复制的CSS选择器") # 提取所有地址文本 addr_list = page.eval_on_selector_all("你复制的CSS选择器", "elements => elements.map(el => el.textContent.trim())") browser.close()
额外提示:大部分区块链浏览器有反爬策略,建议控制请求间隔在3秒以上,必要时可以搭配代理IP使用,避免IP被封禁。
内容的提问来源于stack exchange,提问作者lilith qq
相关产品推荐
相关产品推荐

