Skip to content
Advertisement

Python Web Scraping Div

I’m trying to scrape the job list from a web site, but I do not have enough experience with scraping. I found that all jobs are in a div block like this :

<div class="block_white_a post clearfix silver-job-block">

What I want to access is the job title, job description and job link (<a href="..").

Unfortunately, I couldn’t understand the logic for accessing them.

So far I extracted them like this:

find_all("div", {"class":"block_white_a post clearfix "}

Here is a link to my code.

from bs4 import BeautifulSoup
from requests import get
from requests.exceptions import RequestException
from contextlib import closing
from bs4 import BeautifulSoup
import re

def simple_get(url):
#Attempts to get the content at `url` by making an HTTP GET request.
#If the content-type of response is some kind of HTML/XML, return the
#text content, otherwise return None
  try:
      with closing(get(url, stream=True)) as resp:
          if is_good_response(resp):
              return resp.content
          else:
              return None

  except RequestException as e:
      print('Error during requests to {0} : {1}'.format(url, str(e)))
      return None

def is_good_response(resp):

#Returns true if the response seems to be HTML, false otherwise

    content_type = resp.headers['Content-Type'].lower()
    return (resp.status_code == 200 
            and content_type is not None 
            and content_type.find('html') > -1)

raw_html = simple_get('http://www.keejob.com/offres-emploi/jobs/advanced/results/')
html = BeautifulSoup(raw_html, 'html.parser')


for item in html.find_all("div", {"class":"block_white_a post clearfix "}):
  print( item)
  print ("-----------------------------------------")
  print (str(item.get_text()).strip().join(' '))
  #Trying to get the description
  print ("-----------------------------------------")

Advertisement

Answer

I exactly parsed the following in the order they are being shown:

  1. Job Title
  2. Job Description
  3. Job Link

Code:

from bs4 import BeautifulSoup
from requests import get
from requests.exceptions import RequestException
from contextlib import closing
from bs4 import BeautifulSoup
import re

def simple_get(url):
#Attempts to get the content at `url` by making an HTTP GET request.
#If the content-type of response is some kind of HTML/XML, return the
#text content, otherwise return None
  try:
      with closing(get(url, stream=True)) as resp:
          if is_good_response(resp):
              return resp.content
          else:
              return None

  except RequestException as e:
      print('Error during requests to {0} : {1}'.format(url, str(e)))
      return None

def is_good_response(resp):

#Returns true if the response seems to be HTML, false otherwise

    content_type = resp.headers['Content-Type'].lower()
    return (resp.status_code == 200
            and content_type is not None
            and content_type.find('html') > -1)

raw_html = simple_get('http://www.keejob.com/offres-emploi/jobs/advanced/results/')
soup = BeautifulSoup(raw_html, 'html.parser')
divs = soup.find_all("div", {"class": "content row-fluid"})

jobs = []
for div in divs:
    job = []
    job.append(re.sub(r'ns*n', r'nn', div.find('a').get_text().strip(), flags=re.M))
    try:
        job.append(re.sub(r'ns*n', r'nn', div.find('div', {'class': 'span12 no-margin-left'}).find('p').get_text().strip(), flags=re.M))
    except AttributeError:
        job.append('No Job Description')
    job.append(div.find('a')['href'])
    jobs.append(job)

for i in jobs:
    for l in i:
        print(l)
    print('n')

Output:

Chef Unité Plastique
Une société de renommée dans le milieu industriel recrute pour l'un de ses sites "Chef Unité Plastique"Mission:* Planifier et coordonner le travail, définir et répartir les postes de travail (méthodes ...
/offres-emploi/jobs/view/64208/chef-unit%C3%A9-plastique/


Chef D'équipe Production
Nous recrutons pour le compte de notre client, une multinationale automobile de renommée sise à Sousse, Chef D'équipe ProductionMISSIONS:Organiser les différents îlots Superviser les teams leader productionSavoir atteindre les cadences Maîtriser parfaitement tout ...
/offres-emploi/jobs/view/64207/chef-d%C3%A9quipe-production/


Technicien Regleur
Une Société de renommée dans le milieu industriel recrute pour l'un de ses sites un Technicien regleurMission * Montage et réglage des outillages et périphériques lors des changements de formats et/ou ...
/offres-emploi/jobs/view/64206/technicien-regleur/


Architecte d'intérieur
No Job Description
/offres-emploi/jobs/view/64205/architecte-dint%C3%A9rieur/


Mouliste (Technicien Moule)
Une société de renommée dans le milieu industriel recrute pour l'un de ses sites un Technicien MouleMission* Réaliser à l'unité ou en petite série les différentes pièces (coque, pont, ailerons, ...
/offres-emploi/jobs/view/64204/mouliste-technicien-moule/


ASSISTANTE COMMERCIAL
No Job Description
/offres-emploi/jobs/view/64203/assistante-commercial/


Un Directeur Financier et Administratif (H/F)
HR House International recrute pour l'un de ses clients, un groupe tunisien de renommé:Un Directeur Financier et Administratif (H/F) Principales missions:superviser la comptabilité et assurer les clôtures mensuelles et annuelles.établir les déclarations ...
/offres-emploi/jobs/view/64202/un-directeur-financier-et-administratif-hf/


CONSEILLERS EN IMMOBILIER SENIORS (H/F)
No Job Description
/offres-emploi/jobs/view/64201/conseillers-en-immobilier-seniors-hf/


Assistant Moyens Généraux
Microcred Tunisie, 8ème filiale du Groupe Microcred, souhaite recruter Un Assistant Moyens Généraux. Placé(e) sous la supervision directe du Responsable Moyens Généraux, le(a) candidat(e) évoluera dans un environnement exigeant, créatif et ...
/offres-emploi/jobs/view/64199/assistant-moyens-g%C3%A9n%C3%A9raux/


INGÉNIEUR MAINTENANCE INDUSTRIELLE
No Job Description
/offres-emploi/jobs/view/64198/ing%C3%A9nieur-maintenance-industrielle/


Un (e) Stagiaire en Logistique
No Job Description
/offres-emploi/jobs/view/64197/un-e-stagiaire-en-logistique/


Business Process Consultant EIMEA(Consultant SAP SD)
No Job Description
/offres-emploi/jobs/view/64196/business-process-consultant-eimeaconsultant-sap-sd/


Coordinateur QHSE
No Job Description
/offres-emploi/jobs/view/64195/coordinateur-qhse/


Directeur administratif (H/F)
No Job Description
/offres-emploi/jobs/view/64194/directeur-administratif-hf/


MODELISTE
No Job Description
/offres-emploi/jobs/view/64193/modeliste/


Auditeur comptable & Réviseurs
No Job Description
/offres-emploi/jobs/view/64191/auditeur-comptable-r%C3%A9viseurs/


stagaire Assistance de direction et technique de commerce
No Job Description
/offres-emploi/jobs/view/64189/stagaire-assistance-de-direction-et-tache-commerciale/


Manager   commercial
Mission : Le manager commercial élabore des stratégies commerciales afin d’optimiser les résultats et d’agrandir voire de développer le réseau. Pour cela, il met en œuvre des plans d’actions commerciales, ...
/offres-emploi/jobs/view/64188/manager-commercial/


Responsable magasin zone sahel
Missions-  Accueillir, conseiller et satisfaire le client,-  Organiser et piloter les activités en boutique,- Développer le chiffre d’affaire et atteindre les objectifs fixés,- Manager, animer et motiver l’équipe de vente,- ...
/offres-emploi/jobs/view/64187/responsable-magasin-zone-sahel/


RESPONSABLE FINANCIER
No Job Description
/offres-emploi/jobs/view/64181/responsable-financier/
User contributions licensed under: CC BY-SA
6 People found this is helpful
Advertisement