我希望从以下网址中删除作业的详细信息: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)
我的代码有什么错误?为什么它返回一个空的数据帧?
答案 0 :(得分:0)
要调试此类问题,明智的方法是检查您执行的不同步骤。
当我执行上面的代码时,该行:
jobs=soup.findAll(class_='jobsearch-SerpJobCard unifiedRow row result clickcard')
产生一个空列表。
您应该 a)查看您收到的数据(res.text), b)查看您正在使用的findall子句,以及该子句是否适合res.text