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

Python爬虫无法筛选定位USAJOBS职位名称并统计出现频率求助

实现职位名称频次统计的修改后代码

import requests
from bs4 import BeautifulSoup
from collections import Counter

# 增加请求头避免被站点反爬拦截
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"
}
r = requests.get("https://www.usajobs.gov/Search/Results?j=0602&d=VA&p=1", headers=headers)
soup = BeautifulSoup(r.content, "html.parser")

# 直接通过职位标题a标签的专属属性定位元素,提取标题文本
job_title_list = [
    a_tag.get_text(strip=True).lower() 
    for a_tag in soup.find_all("a", class_="usajobs-search-result--core__title")
]

# 统计职位名称出现频次
job_count = Counter(job_title_list)
print(job_count)

修改说明

  • 新增请求头配置:usajobs.gov对默认的requests请求UA会做拦截,添加模拟浏览器的UA可以保证拿到正确的页面内容
  • 优化元素定位逻辑:不再遍历所有div提取文本,直接使用目标a标签的专属class usajobs-search-result--core__title 定位所有职位标题元素,精准度更高,也避免统计到无关内容
  • 调整统计逻辑:直接提取完整的职位名称做频次统计,符合收集职位名称出现频次的需求,而非统计所有拆分后的单词频次

如果需要更稳定的定位,也可以用a标签的itemprop属性筛选,将find_all的参数改为soup.find_all("a", attrs={"itemprop": "title"}) 效果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 18:36:04