2017-10-18 31 views
0

Je suis novice en matière d'exploration Web et je souhaite apprendre comment utiliser beautifulsoup pour l'intégrer à un mini-projet. Je suivais le tutoriel thenewboston sur beautifulsoup sur son youtube channel puis s'est coincé à essayer de ramper de Reddit. Je veux ramper des titres et des liens sur chacune des nouvelles de la NBA sur Reddit/r/nba mais n'a pas eu de succès. La seule chose qui revient dans le terminal était "Processus terminé avec le code de sortie 0". J'ai le sentiment que c'était à voir avec mes sélections? Toute orientation et aide seraient grandement appréciées.Impossible d'explorer la page NBA de Reddit

Voici le code original, ne fonctionne pas:

import requests 
from bs4 import BeautifulSoup 

def spider(max_pages): 
    page = 1 
    while page <= max_pages: 
     url = 'https://reddit.com/r/nba' + str(page) 
     source_code = requests.get(url) 
     plain_text = source_code.text 
     soup = BeautifulSoup(plain_text, "html.parser") 
     for link in soup.find_all('a', {'class': 'title'}): 
      href = link.get('href') 
      print(href) 
     page += 1 

spider(1) 

J'ai essayé de faire de cette façon, mais cela n'a pas résolu le problème:

import requests 
from bs4 import BeautifulSoup 

def spider(max_pages): 
    page = 1 
    while page <= max_pages: 
     url = 'https://www.reddit.com/r/nba/' + str(page) 
     source_code = requests.get(url) 
     plain_text = source_code.text 
     soup = BeautifulSoup(plain_text, "html.parser") 
     for link in soup.findAll('a', {'class': 'title'}): 
      href = "https://www.reddit.com/" + link.get('href') 
      title = link.string 
      print(href) 
      print(title) 
     page += 1 

spider(1) 
+0

Avez-vous vérifié ce qui est retourné à partir des demandes, vous devrez peut-être modifier votre chaîne d'agent utilisateur pour éviter le bloc bot. –

+0

Il dit simplement "Processus terminé avec le code de sortie 0" lorsque j'exécute l'application – Vincent

+0

Vérifiez quelle est la valeur de plain_text. Le modèle d'URL est erroné aussi. –

Répondre

0

Obtenez des titres et des liens sur la page principale :

from bs4 import BeautifulSoup 
from urllib.request import urlopen 

html = urlopen("https://www.reddit.com/r/nba/") 
soup = BeautifulSoup(html, 'lxml') 
for link in soup.find('div', {'class':'content'}).find_all('a', {'class':'title may-blank outbound'}): 
    print(link.attrs['href'], link.get_text()) 
+0

Cela n'a pas fonctionné pour moi – Vincent