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

使用BeautifulSoup无法爬取ercotires网站全部HREF链接求助

解决爬取ercotires.com链接无结果的问题

爬取时拿不到链接,大概率是这几个原因:

  • 网站用JavaScript动态加载产品列表,requests只能拿到初始空框架,没加载出实际链接
  • 请求头太简单,被反爬机制拦截,返回的内容不完整
  • 直接找所有<a>标签范围太宽,没精准定位到产品链接

下面是具体解决办法:

先确认请求是否拿到有效页面

先补充关键请求头,然后打印响应内容,排查是否被拦截:

import requests

headers = {
    'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8',
    'Referer': 'https://www.ercotires.com/tienda/'
}

r = requests.get('https://www.ercotires.com/tienda/?swoof=1&paged=1', verify=False, headers=headers)
print(r.status_code)  # 正常应该返回200
print(r.text[:500])  # 查看前500字是否为产品页面内容,不是则说明被拦截

如果状态码不是200,或返回验证码、反爬提示,需要调整请求头或使用代理。

精准定位产品链接

如果页面存在静态链接,不要全局查找<a>,直接定位电商站常用的产品链接容器(比如woocommerce-loop-product__link类名):

import requests
from bs4 import BeautifulSoup

headers = {
    'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8',
    'Referer': 'https://www.ercotires.com/tienda/'
}

for x in range(1,6):
    r = requests.get(f'https://www.ercotires.com/tienda/?swoof=1&paged={x}', verify=False, headers=headers)
    soup = BeautifulSoup(r.text, 'html.parser')
    # 仅抓取产品专属链接
    product_links = soup.find_all('a', class_='woocommerce-loop-product__link')
    for link in product_links:
        print(link.get('href'))

处理动态加载的情况

如果上述方法无效,说明页面是JavaScript动态渲染的,用Selenium模拟浏览器加载完整页面:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
import time

# 配置无头模式,无需打开可视化浏览器窗口
options = Options()
options.add_argument('--headless=new')
options.add_argument('user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36')

driver = webdriver.Chrome(options=options)

for x in range(1,6):
    url = f'https://www.ercotires.com/tienda/?swoof=1&paged={x}'
    driver.get(url)
    time.sleep(2)  # 等待页面加载完成
    
    # 抓取产品链接
    product_links = driver.find_elements(By.CLASS_NAME, 'woocommerce-loop-product__link')
    for link in product_links:
        print(link.get_attribute('href'))

driver.quit()

内容的提问来源于stack exchange,提问作者José Maria Vayas O

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 19:55:22