【问题标题】:why does the following lines of code return an empty data set为什么以下代码行返回一个空数据集
【发布时间】: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


【解决方案1】:

要调试这样的问题,明智的做法是检查您采取的不同步骤。

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

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

产生一个空列表。

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

【讨论】:

  • 我该如何解决这个问题?
猜你喜欢
  • 2021-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-29
  • 1970-01-01
相关资源
最近更新 更多