2017-11-07 4 views
-2

Wenn ich div.text verwende, druckt es alle Daten, aber wenn ich diese Daten in eine CSV-Datei schreiben möchte, geht es nur eine obere Daten.Scrape the Stack Überlauf Benutzerdaten

+0

Wenn Sie es drucken, erhalten Sie nur ein Ergebnis. Dies ist, womit die CSV-Datei aktualisiert wird. – SIM

Antwort

1

Ich denke, das ist, wie Sie Ihren Schaber sich verhalten wollte. Führen Sie es aus und finden Sie eine CSV-Datei mit Daten ausgefüllt.

import requests 
from bs4 import BeautifulSoup 
import csv 

response = requests.get('https://stackoverflow.com/users').text 
soup = BeautifulSoup(response, 'lxml') 
for items in soup.select('.user-details'): 
    name = items.select("a")[0].text 
    location = items.select(".user-location")[0].text 
    reputation = items.select(".reputation-score")[0].text 
    print(name,location,reputation) 

    with open('stackdata.csv','a',newline='') as csv_file: 
     writer = csv.writer(csv_file) 
     writer.writerow([name,location,reputation]) 
+0

Dank Shahin ist es richtig arbeiten –

+0

Alle Details sind in einer einzigen Spalte, wie in drei verschiedenen Spalten zu strippen. –

+0

Siehe den bearbeiteten Code. Sie haben jetzt alle Felder in einzelnen Spalten. – SIM