почему следующие строки кода возвращают пустой набор данных - PullRequest
0 голосов
/ 23 сентября 2019

Я собираюсь получить подробную информацию о вакансиях из этого 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)

в чем ошибка в моем коде?почему он возвращает пустой фрейм данных?

1 Ответ

0 голосов
/ 23 сентября 2019

Для устранения проблемы, подобной этой, целесообразно проверить различные шаги, которые вы предпринимаете.

Когда я выполняю приведенный выше код, строка:

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

дает пустой список.

Вам следует: а) посмотреть на полученные данные (res.text), б) посмотреть на предложение findall, которое вы используете, и подходит ли оно для res.text

...