首页 > 解决方案 > 使用 BS4 从 Span 中刮取“新”标志

问题描述

我已经看到有关跨度标签文本的类似问题,但我似乎无法让它工作。我在推测/猜测它,因为我在脚本的前面删除了部分行,但不确定。我正在刮确实,想知道他们是否将工作标记为“新”。为截图道歉,但我试图让问题保持清洁。

目标是从突出显示的跨度中返回以下数据和“新”文本。

HTML 检查

df = pd.DataFrame(columns=["Title","Location","Company","Salary","Descr","New_Flag"])
soup = BeautifulSoup(html.content, 'html.parser', from_encoding="utf-8")
        for item in soup.find_all(class_= "result" ):
            try: 
                title = item.find(class_='jobtitle').text.replace('\n', '')
            except:
                title = None
            try:
                location = item.find('span', {'class':"location" }).text.replace('\n', '')
            except:
                location = None
            try: 
                company = item.find(class_='company').text.replace('\n', '')
            except:
                company = None
            try:
                salary = item.find('span', {'class':'no-wrap'}).text
            except:
                salary = None
            try:
                descr = item.find('span', {'class':'summary'}).text.replace('\n', '')
            except:
                descr = None
            try:
                new_flag = item.find('span', {'class':'new'}).text
            except:
                new_flag = None

我没有收到任何错误,但我也没有在数据框中收到任何结果。如果我删除 new_flag 组件,它会起作用。

提前致谢。

标签: python-3.xpandasweb-scrapingbeautifulsoup

解决方案


推荐阅读