解决使用selenium-wire访问链接地址不安全的问题

selenium-wire访问不安全如下:

pip安装selenium-wire

描述:这里用的是python3.12.2 selenium-wire==5.1.0

pip3.12 install selenium-wire
pip3.12 install blinker==1.7
pip3.12 install setuptools

运行以下命令来获取证书 

python -m seleniumwire extractcert

安装浏览器ssl证书

Windows上给chrome浏览器安装证书

方式一:

浏览地址栏输入:

chrome://settings/security

方式二:

打开chrome浏览器(selenium-wire驱动的chrom浏览器)--》点击设置--》隐私和安全--》安全--》

管理设备证书--》受信任的根证书颁发机构

点击 受信任的根证书颁发机构 导入刚才执行命令获取的ca.crt(安全证书)

 

 

重新运行,成功解决

 Linux 的系统,使用以下命令从终端安装证书

 -i: 是ca.crt文件的路径

CentOS

yum install nss-tools
certutil -d sql:$HOME/.pki/nssdb -A -t TC -n "Selenium Wire" -i /usr/packages/ca.crt

Ubuntu 

apt install libnss3-tools
certutil -d sql:$HOME/.pki/nssdb -A -t TC -n "Selenium Wire" -i /usr/packages/ca.crt

参考资料:
https://github.com/wkeeling/selenium-wire/issues/120

### 音乐爬虫的实现方式及相关资源 音乐爬虫可以通过多种框架和技术栈实现,具体取决于目标网站的技术特点以及开发者的需求。以下是几种常见的方法及其对应的工具: #### 1. 使用 Puppeteer 进行无头浏览器操作 Puppeteer 是一种强大的 Node.js 库,用于控制 Chromium 浏览器实例并抓取动态加载的内容。为了规避反爬机制,可以结合 `puppeteer-extra` 和其插件 `stealth-evasions` 来模拟真实用户的访问行为[^1]。 ```javascript const puppeteer = require('puppeteer-extra'); const StealthPlugin = require('puppeteer-extra-plugin-stealth'); // 添加 stealth 插件以绕过检测 puppeteer.use(StealthPlugin()); (async () => { const browser = await puppeteer.launch({ headless: true }); const page = await browser.newPage(); // 访问目标页面 await page.goto('https://example-music-site.com'); // 提取所需数据 const musicData = await page.evaluate(() => { return Array.from(document.querySelectorAll('.music-item'), item => ({ title: item.querySelector('.title').innerText, artist: item.querySelector('.artist').innerText })); }); console.log(musicData); await browser.close(); })(); ``` #### 2. Selenium-Wire 的应用 Selenium-Wire 扩展了 Selenium 功能,允许拦截和修改网络请求,这对于处理复杂的登录验证或 API 调用非常有用[^2]。通过它可以直接获取到音频流链接或其他隐藏的数据源。 ```python from seleniumwire import webdriver options = {} driver = webdriver.Chrome(executable_path='/path/to/chromedriver', options=options) url = 'https://target-music-platform.com' driver.get(url) for request in driver.requests: if '.mp3' in str(request.url): # 假设我们关注的是 MP3 文件下载链接 print(f"Found audio file at {request.url}") driver.quit() ``` #### 3. 数据预处理中的注意事项 当从 CSV 文件导入数据时,可能会遇到缺失值 (NaN),这会干扰后续逻辑判断。因此,在实际开发过程中需要注意对这些异常情况进行适当处理[^4]。 例如: ```python import pandas as pd df = pd.read_csv("songs.csv") cleaned_df = df.fillna('Unknown') # 将所有 NaN 替换为 Unknown 字符串 print(cleaned_df.head()) ``` #### 4. 社区支持与常见问题解答 对于更深入的学习或者解决问题的帮助,Stack Overflow 平台提供了丰富的讨论记录[^3]。你可以利用该站点上的搜索功能查找特定主题下的高质量问答内容;同时 GitHub 上也有许多开源项目可供参考学习。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值