You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python使用Selenium写爬虫时报InvalidArgumentException如何解决

问题排查结果

一共有3处错误导致运行异常:

  • 第一处:driver.get() 传入参数非法。你传入的是包含<a href>标签的完整HTML字符串,并非纯URL地址,这是直接触发本次InvalidArgumentException异常的原因。
  • 第二处:循环逻辑缩进错误。三个列表的append操作写在for循环外部,只会将循环结束后最后一个遍历到的元素写入列表,如果未匹配到对应元素还会触发空对象调用text属性的报错。
  • 第三处:ChromeDriver 初始化写法兼容问题。高版本 Selenium 不支持直接将驱动路径传入webdriver.Chrome(),需要使用Service类封装路径参数。

修复后完整代码

from bs4 import BeautifulSoup
import pandas as pd
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

# 修复初始化写法
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))

products=[] #存储商品名称
prices=[] #存储商品价格
ratings=[] #存储商品评分
# 修复入参,只保留纯URL
driver.get("https://www.flipkart.com/laptops/~buyback-guarantee-on-laptops-/pr?sid=6bo%2Cb5g&uniqBStoreParam1=val1&wid=11.productCard.PMU_V2")

content = driver.page_source
soup = BeautifulSoup(content, 'html.parser')
for a in soup.findAll('a',href=True, attrs={'class':'_31qSD5'}):
    name=a.find('div', attrs={'class':'_3wU53n'})
    price=a.find('div', attrs={'class':'_1vC4OE _2rQ-NK'})
    rating=a.find('div', attrs={'class':'hGSR34 _2beYZw'})
    # 修复缩进,移入循环内部,增加非空判断避免报错
    if name and price and rating:
        products.append(name.text)
        prices.append(price.text)
        ratings.append(rating.text) 

df = pd.DataFrame({'Product Name':products,'Price':prices,'Rating':ratings}) 
df.to_csv('products.csv', index=False, encoding='utf-8')
# 运行结束关闭驱动
driver.quit()

内容的提问来源于stack exchange,提问作者BruceyBandit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.19 20:36:03