为什么以下几行代码返回空数据集

时间:2019-09-23 07:03:04

标签: python python-3.x web-scraping beautifulsoup python-requests

我希望从以下网址中删除作业的详细信息:https://www.indeed.com/q-doctor-l-Washington,-DC-jobs.html。我想获得一个数据框,其中显示了职位,招聘单位,职位和职位摘要

import bs4
import pandas as pd
import requests
import re

res=requests.get("https://www.indeed.com/q-doctor-l-Washington,-DC-jobs.html")
soup=bs4.BeautifulSoup(res.text,'lxml')
jobs=soup.findAll(class_='jobsearch-SerpJobCard unifiedRow row result clickcard')
full_dict={'title':[],'organization':[],'location':[],'summary':[]}

for job in jobs:
    job_title=job.find('div',{'class':'title'})
    job_organization=job.find('div',{'class':'company'})
    job_location=job.find('div',{'class':'sjcl'})
    job_summary=job.find('div',{'class':'summary'})
    full_dict['title'].append(job_title)
    full_dict['organization'].append(job_organization)
    full_dict['location'].append(job_location)
    full_dict['summary'].append(job_summary)

df=pd.DataFrame(full_dict)
print(df)

我的代码有什么错误?为什么它返回一个空的数据帧?

1 个答案:

答案 0 :(得分:0)

要调试此类问题,明智的方法是检查您执行的不同步骤。

当我执行上面的代码时,该行:

jobs=soup.findAll(class_='jobsearch-SerpJobCard unifiedRow row result clickcard')

产生一个空列表。

您应该 a)查看您收到的数据(res.text), b)查看您正在使用的findall子句,以及该子句是否适合res.text