2013-10-06 18 views
0

Pour un projet scolaire, nous devons créer un site Web de recherche d'emploi et le stocker dans une base de données, puis faire correspondre ces profils avec ceux qui recherchent des personnes.BeautifulSoup4 - Tous les liens de 1 div sur plusieurs pages

Sur ce site particulier, tous les URLs aux pages que j'ai besoin de gratter sont en 1 div (avec 10 liens par page) le div est appelé 'primaryResults' qui en a 10. Avec beautifulsoup je souhaite d'abord gratter tous les liens dans un tableau en faisant défiler le numéro de page dans l'url jusqu'à ce qu'un 404 ou quelque chose de similaire apparaisse.

Parcourez ensuite chacune de ces pages et stockez les informations dont j'ai besoin sur chaque page dans un tableau et envoyez-les à ma base de données.

Maintenant, je suis coincé à la partie où je collectionne les 10 liens de la div ID = 'primaryResults'.

Comment est-ce que je devrais aller mettre ceci dans mon Python pour faire à ce magasin tous les 10 url dans un tableau? Jusqu'à présent, je l'ai essayé:

import urllib2 
from BeautifulSoup import BeautifulSoup 

opener = urllib2.build_opener() 
opener.addheaders = [("User-Agent", "Mozilla/5.0")] 

url = ("http://jobsearch.monsterboard.nl/browse/") 

content = opener.open(url).read() 
soup = BeautifulSoup(content) 

soup.find(id="primaryResults") 
print soup.find_all('a') 

mais cela ne donne qu'une erreur:

Traceback (most recent call last): 

print soup.find_all('a') 
TypeError: 'NoneType' object is not callable 

Quelqu'un pourrait-il s'il vous plaît me aider? Merci :)

+2

Je pense que BeautifulSoup4 est: 'from bs4 import BeautifulSoup' –

+1

Donne moi une erreur il ne trouve pas ce module. Cela m'a juste fait réaliser easy_install n'a pas installé V4 mais V3, mon problème est maintenant résolu. Merci :) – rockyl

Répondre

1

Voici la réponse pour obtenir tous les liens qui sont dans l'URL que vous avez mentionné

from bs4 import BeautifulSoup 
import urllib2 
url="http://jobsearch.monsterboard.nl/browse/" 
page=urllib2.urlopen(url) 
soup = BeautifulSoup(page.read()) 
jobs=soup.findAll('a',{'class':'slJobTitle'}) 
for eachjob in jobs: 
print eachjob['href'] 

L'espoir, il est clair et utile.

Questions connexes