【问题标题】:Extract entry within </h3> HTML tag - Python在 </h3> HTML 标记中提取条目 - Python
【发布时间】:2021-01-21 00:22:32
【问题描述】:

我正在使用招聘列表数据进行网络抓取项目。我在找出从 html 标签中提取内容的最佳方法时遇到了一些麻烦。下面的代码输出如下:

修复数据分析师/h3>>

我只需要剥离 html,以便输出只是“补救数据分析师”。我知道这很简单。

脚本:

import pandas as pd
from bs4 import BeautifulSoup
import requests
import re

url = requests.get('https://au.jora.com/j?sp=homepage&q=analytics&l=Sydney+NSW')
soup = BeautifulSoup(url.content, 'html.parser')

containers = soup.find_all(class_='job-item')

for c in containers:
    try:
        print(c.find_all(class_='job-title'))
    except:
        print('n/a')

【问题讨论】:

    标签: html python-3.x beautifulsoup


    【解决方案1】:

    您可以搜索具有相关属性(在您的情况下为类)的 h3 标签。

    soup.find_all("h3", {"class": 'job-item'})
    
    # To access the text inside the tag you simply use the .text attribute
    soup.find_all("h3", {"class": 'job-item'}).text
       
    

    在上述情况下,它可能无法直接工作,因为 find_all 会返回项目列表,但您可以遍历项目并使用 .text 获取标签内的文本。

    【讨论】:

    • 是的 Grizzle,我发现我使用 find_all 的方法是问题所在。鉴于每个容器仅包含每个职位列表的一个条目(即职位、薪水等),因此 find 就足够了。然后,这允许我传入 .text [感谢您为我查看此内容 :)]
    【解决方案2】:

    我只是通过使用find() 而不是find_all() 并调用.text 方法来解决它。

    for c in containers:
        try:
            c1 = c.find(class_='job-title').text
            print(c1)
        except:
            print('n/a')
    

    输出:

    Remediation Data Analyst
    Data & Analytics Manager
    Head of Data & Analytics
    Senior Manager, Data Science Australia
    Senior Associate, Data & Analytics
    Head of Analytics
    Reporting Analyst
    Head of Data & Analytics
    Senior Manager- Data & Analytics
    Analytics Manager
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-04
      • 2020-06-01
      • 1970-01-01
      • 2018-03-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多