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

为何使用Python+BeautifulSoup爬取Upwork职位返回空列表[]?

Upwork职位爬取返回空列表的原因及解决方法

问题原因

  • 反爬机制拦截
    Upwork有严格的反爬策略,直接用requests.get发起请求会被服务器识别为非浏览器请求,返回的HTML里根本没有你要找的职位元素,自然搜不到结果。
  • 目标元素定位错误
    你用的job-description-line-clamp类名可能已经失效,Upwork的页面结构会定期更新,当前页面的职位描述元素大概率换了类名或标签结构。

解决办法

  • 添加请求头模拟浏览器
    给请求加上浏览器的User-Agent,让服务器认为是正常用户访问。示例代码:
from bs4 import BeautifulSoup
import requests

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
}
response = requests.get('https://www.upwork.com/nx/jobs/search/?q=Lead%20Generation&sort=recency', headers=headers)
soup = BeautifulSoup(response.text, 'lxml')
# 先打印页面结构确认是否拿到真实内容
print(soup.prettify())
  • 重新定位目标元素
    打开Upwork职位搜索页,按F12调出开发者工具,找到职位卡片对应的HTML标签和类名,替换代码里的定位参数。比如现在职位卡片可能用job-tile类包裹,描述内容在job-description类的标签里。

  • 优先使用官方API
    如果需要长期稳定获取数据,直接用Upwork的官方API是合规方案,不用解析HTML,也不会触发反爬,能拿到结构化的职位信息。

内容的提问来源于stack exchange,提问作者İqbal Mirzeyev

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 19:12:33