2016-09-06 7 views
0

Je suis en train de gratter nouvelles Google en utilisant le code suivant:Grattage nouvelles Google avec BeautifulSoup renvoie des résultats vides

from bs4 import BeautifulSoup 
import requests 
import time 
from random import randint 


def scrape_news_summaries(s): 
    time.sleep(randint(0, 2)) # relax and don't let google be angry 
    r = requests.get("http://www.google.co.uk/search?q="+s+"&tbm=nws") 
    content = r.text 
    news_summaries = [] 
    soup = BeautifulSoup(content, "html.parser") 
    st_divs = soup.findAll("div", {"class": "st"}) 
    for st_div in st_divs: 
     news_summaries.append(st_div.text) 
    return news_summaries 


l = scrape_news_summaries("T-Notes") 
#l = scrape_news_summaries("""T-Notes""") 
for n in l: 
    print(n) 

Même si ce morceau de code fonctionnait avant, je ne peux pas maintenant comprendre pourquoi ce n'est pas travailler plus. Est-il possible que je sois banni par google depuis que j'ai seulement couru le code 3 ou quatre fois? (J'ai essayé d'utiliser Bing News avec des résultats vides malheureux aussi ...)

Merci.

Répondre

2

J'ai essayé d'exécuter le code et cela fonctionne très bien sur mon ordinateur.

Vous pouvez essayer d'imprimer le code d'état de la demande, et voir si elle est autre chose que 200.

from bs4 import BeautifulSoup 
import requests 
import time 
from random import randint 


def scrape_news_summaries(s): 
    time.sleep(randint(0, 2)) # relax and don't let google be angry 
    r = requests.get("http://www.google.co.uk/search?q="+s+"&tbm=nws") 
    print(r.status_code) # Print the status code 
    content = r.text 
    news_summaries = [] 
    soup = BeautifulSoup(content, "html.parser") 
    st_divs = soup.findAll("div", {"class": "st"}) 
    for st_div in st_divs: 
     news_summaries.append(st_div.text) 
    return news_summaries 


l = scrape_news_summaries("T-Notes") 
#l = scrape_news_summaries("""T-Notes""") 
for n in l: 
    print(n) 

https://www.scrapehero.com/how-to-prevent-getting-blacklisted-while-scraping/ pour une liste de code d'état qui est un signe que vous avez été banni.

+0

Merci. Il fonctionne à nouveau sur mon ordinateur. Je suppose que j'ai été banni pendant un moment. Merci, je vais attraper les réponses non-200 pour éviter d'autres problèmes ... – ylnor

+0

Comment pourrais-je inclure une recherche pour toute déclaration comme ("T-Notes" OU "Notes") ET ("Albanie" OU "Roumanie")? – amc