【发布时间】:2019-09-23 07:03:04
【问题描述】:
我希望从这个 url: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)
我的代码有什么错误?为什么会返回一个空数据框?
【问题讨论】:
-
可能有很多原因。你有什么尝试,调试它?例如,
soup.findAll语句返回什么? -
“职位”为空,不加载任何数据。
-
完全不相关,但“并行列表”是一个非常糟糕的设计选择。对于您在这里所做的事情,最好使用字典列表而不是列表字典。
标签: python python-3.x web-scraping beautifulsoup python-requests