CSV导入导出网页爬虫改造及Chrome Driver错误解决求助
爬虫代码修改与USB错误修复
一、CSV读取逻辑调整(从铸币地址生成请求URL)
- 定义固定URL前缀,替换示例中的
https://website/nft/为实际目标地址 - 修改CSV读取逻辑,读取铸币地址列(假设列名为
MintAddress),拼接成完整请求URL - 修正原代码中
driver.quit()的位置(原代码中在return之后,无法执行)
二、Chrome Driver USB错误消除
添加ChromeOptions配置,禁用USB设备扫描与相关日志输出,彻底消除该错误提示。
修改后的完整代码
from selenium import webdriver from selenium.webdriver.chrome.options import Options from bs4 import BeautifulSoup from time import sleep import pandas as pd import re def scrape(url): # 配置Chrome选项,消除USB错误 chrome_options = Options() chrome_options.add_argument("--disable-usb-discovery") chrome_options.add_argument("--disable-dev-shm-usage") chrome_options.add_argument("--no-sandbox") chrome_options.add_experimental_option("excludeSwitches", ["enable-logging"]) driver = webdriver.Chrome(executable_path=r"C:\Path\to\driver\chromedriver.exe", options=chrome_options) driver.get(url) sleep(5) soup = BeautifulSoup(driver.page_source, "lxml") data = ([i.text for i in soup.select("h2.header-title")]) content = str(data) rawdata = re.sub('[^0-9,.]', '', content) print(rawdata) driver.quit() # 移至return前,确保浏览器正常关闭 return rawdata # 配置固定URL前缀 BASE_NFT_URL = "https://website/nft/" # 读取CSV中的铸币地址(假设列名为MintAddress) df = pd.read_csv('scrape.csv') # 遍历铸币地址,生成URL并抓取数据 for idx, row in df.iterrows(): mint_address = row['MintAddress'] full_url = f"{BASE_NFT_URL}{mint_address}" scraped_data = scrape(full_url) df.at[idx, 'ScrapedData'] = scraped_data # 将抓取结果存入新列 # 保存结果到新CSV df.to_csv('scraped.csv', index=False)
关键修改说明
- URL拼接逻辑:通过
BASE_NFT_URL固定前缀,与CSV中的铸币地址拼接成完整请求URL,替换原直接读取URL的逻辑 - USB错误修复:添加
--disable-usb-discovery禁用USB设备扫描,excludeSwitches=["enable-logging"]屏蔽日志中的USB错误输出,同时添加其他提升稳定性的参数 - 代码优化:使用
iterrows()遍历DataFrame更直观,修正driver.quit()位置确保每次抓取后关闭浏览器,避免资源占用
内容的提问来源于stack exchange,提问作者Justin Lucas
相关产品推荐
相关产品推荐

