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

调用driver.get访问谷歌搜索结果链接时触发InvalidArgumentException

问题分析与解决

InvalidArgumentException出现在driver.get(i)语句,核心原因是你提取的i不是有效URL,结合代码细节,具体问题和修复方案如下:


1. URL提取逻辑错误

你当前从div[@class='yuRUbf']元素取href属性,但这个div本身没有href属性,真正的链接在它下方的<a>标签里。修改提取逻辑:

linkedin_urls = [my_elem.find_element(By.TAG_NAME, "a").get_attribute("href") 
                 for my_elem in WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.XPATH, "//div[@class='yuRUbf']")))]

2. 谷歌搜索未实现翻页

循环for x in range(0,20,10)中的x变量未被使用,每次都访问同一页,导致爬取重复链接。需在URL中加入start参数实现翻页:

base_url = 'https://www.google.com/search?q=site%3Alinkedin.com%2F+AND+%22managing+director+%40+Morgan+Stanley%22+AND+%22New+York+City+Metropolitan+Area%22&rlz=1C1ONGR_enUS1012US1012&ei=7totZJioCr6dptQPi4qR4Ag&ved=0ahUKEwiY1_KOy5P-AhW-jokEHQtFBIwQ4dUDCBA&oq=site%3Alinkedin.com%2F+AND+%22managing+director+%40+Morgan+Stanley%22+AND+%22New+York+City+Metropolitan+Area%22&gs_lcp=Cgxnd3Mtd2l6LXNlcnAQDEoECEEYAFAAWABgAGgAcAB4AIABAIgBAJIBAJgBAA&sclient=gws-wiz-serp'
for x in range(0,20,10):
    driver.get(f'{base_url}&start={x}')  # 加入start参数实现翻页
    sleep(randint(3,5))
    # 此处使用修复后的URL提取逻辑

3. 嵌套列表冗余处理

Lnks是嵌套列表(每个页面对应一个子列表),遍历前可先展开,避免两层循环的冗余:

# 展开嵌套列表
all_links = [link for sublist in Lnks for link in sublist]
for link in all_links:
    if link:  # 先判断链接是否有效,避免空值报错
        driver.get(link)
        sleep(randint(3,5))
        # 在此处添加提取数据到Jobdata的逻辑,例如:
        # person_name = driver.find_element(By.XPATH, "//h1").text
        # Jobdata.append({"name": person_name, "url": link})

4. 反爬注意事项

谷歌对自动化工具检测严格,建议:

  • 使用--headless=new模式运行Chrome,降低被检测概率
  • 随机化User-Agent,避免固定标识
  • 用WebDriverWait替代固定sleep,更高效且更符合正常浏览逻辑
  • 延长随机等待时间,避免短时间内频繁请求触发验证码

最后将爬取到的Jobdata转为pandas DataFrame:

import pandas as pd
df = pd.DataFrame(Jobdata)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 03:23:15