Wenn ich etwas nachgeschlagen habe, wollte ich die Zusammenfassung, den Titel und die URL aus der Google-Suche abrufen, da die Google-Zusammenfassung Aufschluss darüber gibt, was ich nachschlagen möchte.
Automatisieren Sie die Google-Suche, erhalten Sie Suchergebnisse, konvertieren Sie sie in CSV und geben Sie sie aus. Durch die Automatisierung können Sie den Suchaufwand reduzieren.
Windows10Pro
Python3.7
Anaconda
Das diesmal erstellte Programm basiert auf der 81-Version von Chrome. Stellen Sie daher die Chrome-Version auf 81 ein, bevor Sie das Programm ausführen. ↓ Das ist leicht zu verstehen. So überprüfen Sie die Version von Google Chrome
pip install selenium
pip install chromedriver_binary
import csv
import time #Erforderlich, um Schlaf zu verwenden
from selenium import webdriver #Betreiben Sie automatisch den Webbrowser (Python-m pip install selenium)
import chromedriver_binary #Code zum Übergeben des Pfades
def ranking(driver):
i = 1 #Definieren Sie die Schleifennummer und die Seitenzahl
title_list = [] #Bereiten Sie eine leere Liste vor, um den Titel zu speichern
link_list = [] #Bereiten Sie eine leere Liste vor, um die URL zu speichern
summary_list = []
RelatedKeywords = []
#Schleife, bis die aktuelle Seite die angegebene maximale Analyseseite überschreitet
while i <= i_max:
#Titel und Link sind Klasse="r"Ist in
class_group = driver.find_elements_by_class_name('r')
class_group1 = driver.find_elements_by_class_name('s')
class_group2 = driver.find_elements_by_class_name('nVcaUb')
#For-Schleife, die Titel und Links extrahiert und zur Liste hinzufügt
for elem in class_group:
title_list.append(elem.find_element_by_class_name('LC20lb').text) #Titel(class="LC20lb")
link_list.append(elem.find_element_by_tag_name('a').get_attribute('href')) #Verknüpfung(href-Attribut eines Tags)
for elem in class_group1:
summary_list.append(elem.find_element_by_class_name('st').text) #Verknüpfung(href-Attribut eines Tags)
for elem in class_group2:
RelatedKeywords.append(elem.text) #Verknüpfung(href-Attribut eines Tags)
#Es gibt nur ein "Weiter", aber ich wage es, mehrere nach Elementen zu suchen. Eine leere Liste bedeutet die letzte Seite.
if driver.find_elements_by_id('pnnext') == []:
i = i_max + 1
else:
#Die URL der nächsten Seite lautet id="pnnext"Href-Attribut
next_page = driver.find_element_by_id('pnnext').get_attribute('href')
driver.get(next_page) #Fahren Sie mit der nächsten Seite fort
i = i + 1 #Update i
time.sleep(3) #Warten Sie 3 Sekunden
return title_list, link_list, summary_list, RelatedKeywords #Geben Sie eine Liste von Titeln und Links als Rückgabewert an
driver = webdriver.Chrome() #Bereiten Sie Chrome vor
#Beispiel-HTML öffnen
driver.get('https://www.google.com/') #Öffnen Sie Google
i_max = 5 #Definieren Sie bis zu wie viele Seiten analysiert werden sollen
search = driver.find_element_by_name('q') #Suchfeld in HTML(name='q')Konkretisieren
search.send_keys('Scraping-Automatisierung"Python"') #Suchwort senden
search.submit() #Führen Sie eine Suche durch
time.sleep(1.5) # 1.Warten Sie 5 Sekunden
#Führen Sie die Ranking-Funktion aus, um den Titel und die URL-Liste abzurufen
title, link, summary, RelatedKeywords = ranking(driver)
csv_list = [["Rangfolge", "Titel", "einpacken", "Verknüpfung", "Verwandte Schlüsselwörter"]]
for i in range(len(title)):
add_list=[i+1,title[i],summary[i],link[i]]
csv_list.append(add_list)
#Speichern Sie die Titelliste in CSV
with open('Search_word.csv','w',encoding="utf-8_sig") as f:
writecsv = csv.writer(f, lineterminator='\n')
writecsv.writerows(csv_list)
driver.quit()
Insgesamt konnte ich es in ca. 4 Stunden erstellen. Ich bin zufrieden, weil ich jetzt den Browser automatisch mit Selen bedienen und auch den Titel erhalten kann. Sie können es beim Schreiben eines Blogs verwenden!
Bereiten Sie eine CSV-Liste vor und erstellen Sie ein Programm zum Lesen von Suchwörtern. Kombinieren Sie es mit dem diesmal erstellten Programm, um die Suche mit mehreren Suchwörtern zu vereinfachen. Außerdem können Daten mithilfe von Tabellenkalkulationen gespeichert werden.
Recommended Posts