2016-12-21 5 views
1

Ich versuche, die Links von einer Google-Suche mit bs4 zu greifen, aber mein Code gibt einen leeren Satz zurück.Python 2.7 BeautifulSoup4 gibt einen leeren Satz zurück

import requests 
from bs4 import BeautifulSoup 

website = "https://www.google.co.uk/?gws_rd=ssl#q=science" 

response=requests.get(website) 

soup = BeautifulSoup(response.content) 

link_info = soup.find_all("h3", {class": "r"}) 
print link_info 

Die <h3 class="r"> ist, wo die Links für alle Ergebnisse sind nicht nur die Verbindung für das erste Ergebnis.

Als Antwort bekomme ich [] und dies ist für jede andere Klasse ich versuche, einschließlich <div class="rc"> anzufragen.

ist hier ein prt sc von dem, was ich nach bin,

enter image description here

+0

Mögliche Duplikat folgenden [Scrapy: Google Crawl nicht funktioniert] (http : //stackoverflow.com/questions/33395133/scrapy-google-crawl-doesnt-work) – eLRuLL

+0

Die Abfrage ist POST-Anforderung, nicht GET. Sie sollten die POST-Anfrage verwenden und q in post params wie unten erwähnt setzen. Um es besser zu verstehen, öffnen Sie inspect Element im Browser, öffnen Sie die Registerkarte Netzwerk und senden Sie die Anfrage. Sie sehen dort eine Liste der URL-Treffer. Klicken Sie auf einen von ihnen und Sie werden mehr über Ihre Anfragen sehen. Es wird Optionen wie Params, Header, Cookies geben. Params sind die Post-Parameter, die an den Server gesendet werden. Wenn es eine GET-Anfrage ist, wird es normalerweise keine Params geben – theBuzzyCoder

Antwort

0

Versuchen zu verwenden Code

url = 'http://www.google.com/search?' 
params = {'q': 'science'} 
response = requests.get(url, params=params).content 
soup = BeautifulSoup(response) 
link_info = soup.find_all("h3", {"class": "r"}) 
print link_info 
Verwandte Themen