2017-07-04 1 views
0

Ich versuche, ein Skript zu schreiben, das eine Google-Suche nach dem Eingabeschlüssel durchführt und nur den Inhalt der Top 10-URLs zurückgibt.Python: Führen Sie die Google-Suche aus und extrahieren Sie nur den Inhalt der einzelnen Top 10-Ergebnisse.

Hinweis: Inhalt bezieht sich speziell auf den Inhalt, der von dem gesuchten Begriff angefordert wird, und befindet sich im Hauptteil der zurückgegebenen URLs.

Ich bin fertig mit der Suche und Top 10 URL Retrieval Teil. Hier ist das Skript:

from google import search 
top_10_links = search(keyword, tld='com.in', lang='en',stop=10) 

aber ich nicht in der Lage bin nur den Inhalt aus den Links abrufen ohne ihre Struktur zu kennen. Ich kann Inhalte von einer bestimmten Seite scrappen, indem ich die Klasse etc. der Tags mithilfe von dev tools ausfindig mache. Aber ich kann nicht herausfinden, wie man Inhalt von den Top 10 Ergebnis URLs erhält, da für jeden gesuchten Begriff unterschiedliche URLs existieren Websites haben unterschiedliche CSS-Selektoren) und es wäre ziemlich schwer, die CSS-Klasse des erforderlichen Inhalts zu finden. Hier ist der Beispielcode, um Inhalt von einer bestimmten Site zu extrahieren.

content_dict = {} 
i = 1 
for page in links: 
    print(i, ' @ link: ', page) 
    article_html = get_page(page)#get_page() returns page's html 
    soup = BeautifulSoup(article_html, 'lxml') 
    content = soup.find('div',{'class': 'entry-content'}).get_text() 
    content_dict[page] = content 
    i += 1 

Allerdings ändert sich die CSS-Klasse für die verschiedenen Standorte. Gibt es eine Möglichkeit, dass dieses Skript funktioniert und den gewünschten Inhalt bekommt?

+0

In vielen Fällen ist der gewünschte Inhalt der * innerste * Text in einer Webseite, d. H. Es enthält keine weiteren * Tags *. Sie können Code schreiben, mit Hilfe von 'BeautifulSoup' und vielleicht regulären Ausdrücken, um den innersten Text von Webseiten zu erhalten, unabhängig von ihrem Design, aber das wird nicht sehr organisiert sein (Sie können auch unnötigen Text bekommen). –

+0

an dem Punkt @Sam :) Ich habe es versucht, aber habe die gleichen Ergebnisse wie du gesagt. Ich habe den Inhalt zusammen mit dem Kauderwelsch-Text auch. Gibt es keinen Weg, es loszuwerden? –

+0

Vielleicht nicht. @pythad ist korrekt. Sie können nicht ohne das Wissen der Seitenstruktur kratzen. –

Antwort

1

Sie kann nicht kratzen, ohne zu wissen, die Struktur von dem, was Sie scraping.Aber es gibt ein Paket, das etwas Ähnliches tut. Werfen Sie einen Blick auf newspaper

Verwandte Themen