使用Python+BeautifulSoup抓取eBay竞拍者信息的问题求助
eBay店铺竞拍者数据抓取代码调整方案
问题根因
你当前使用的find_all('span')逻辑会无差别提取表格内所有span标签内容,没有按行、按字段定位对应单元格,自然无法匹配到存储竞拍者姓名、所在地的字段节点。
调整后实现代码
# 定位出价历史表格主体 bid_history_tbody = soup.find('table', {'class':'app-bid-history__table'}).find('tbody') # 获取所有出价记录行 bid_rows = bid_history_tbody.find_all('tr') bid_data = [] for row in bid_rows: cell_list = row.find_all('td') # 跳过表头、空行等无效行 if len(cell_list) < 4: continue # 提取竞拍者信息(卖家权限下可见姓名、所在地,存储在第一个单元格内) user_info = cell_list[0].get_text(strip=True, separator='||').split('||') user_name = user_info[0].strip() if len(user_info) >= 1 else '' user_location = user_info[1].strip() if len(user_info) >= 2 else '' # 提取出价金额、出价时间 bid_price = cell_list[2].get_text(strip=True) bid_datetime = cell_list[3].get_text(strip=True) # 存入结果列表 bid_data.append({ '竞拍者姓名': user_name, '竞拍者所在地': user_location, '出价金额': bid_price, '出价时间': bid_datetime }) # 输出验证结果 print(bid_data)
补充说明
- 运行代码前请确保发起请求时携带了你店铺登录账号的有效Cookie,普通访客身份抓取到的HTML默认会隐藏竞拍者隐私信息
- 若你本地HTML的单元格顺序、结构有差异,可先打印
cell_list[0].prettify()查看第一个单元格的标签结构,按需调整姓名、所在地的提取逻辑
内容的提问来源于stack exchange,提问作者Carlos Sanchez
相关产品推荐
相关产品推荐

