2017-11-24 5 views
0

Ich habe ein Skript in Python geschrieben, um Bewertungen von einer bestimmten Seite von yelp.com zu erhalten. Der Schaber macht seinen Job makellos. Die Ergebnisse werden auch erfolgreich in eine CSV-Datei geschrieben. Es gibt 19 Bewertungen auf dieser Seite. Die Ergebnisse, die ich in 19 aufeinander folgenden Reihen habe. Ich erwarte jedoch, dass die Ergebnisse stattdessen in 19 verschiedenen Spalten angezeigt werden.Ich konnte keine Ergebnisse in einer Reihe über Spalten erhalten

Dies ist die Website Link: Link

Um klarer zu sein, führt Ich habe wie:

1. review 
2. review1 
3. review2 
4. review3 

Ergebnisse erwarte ich haben: mein Skript

A  B  C  D 
review review1 review2 review3 

Dies ist :

import requests 
import csv 
from bs4 import BeautifulSoup 

outfile = open("new_file.csv","w",newline="") 
writer = csv.writer(outfile) 

res = requests.get("use_above_link").text 
soup = BeautifulSoup(res,"lxml") 
for link in soup.select(".review-content"): 
    review = [item.text for item in link.select("p")] 
    print(review) 
    writer.writerow(review) 

Antwort

0

die Lösung bereits Got. Es sollte wie sein:

import requests 
import csv 
from bs4 import BeautifulSoup 

outfile = open("new_file.csv","w",newline="") 
writer = csv.writer(outfile) 

res = requests.get("above_link").text 
soup = BeautifulSoup(res,"lxml") 
review = [item.text for item in soup.select(".review-content p")] 
print(review) 
writer.writerow(review) 
0

Sie haben Ihr Array zip:

import requests 
import csv 
from bs4 import BeautifulSoup 

with open("new_csv_file",'w', newline="",encoding="UTF-8") as doc: 
    writer = csv.writer(doc, delimiter=";") 

    res = requests.get("use_above_link").text 
    soup = BeautifulSoup(res,"lxml") 
    for link in soup.select(".review-content"): 
     reviews = [item.text for item in link.select("p")] 
     z = zip(reviews) 
     writer.writerow(z) 
+0

Es gibt mir die gleichen Ergebnisse, die ich bereits mit dem obigen Skript habe. Sie haben vielleicht bemerkt, dass ich ausdrücklich erwähnt habe "Ich erwarte, dass die Ergebnisse stattdessen in 19 verschiedenen Spalten angezeigt werden". – SIM

+0

Ich habe dein Verlangen verstanden. Tatsächlich löste das Zippen eines Arrays das Problem für mich, als ich es in der Zeit zurück hatte. Es war auch eine Antwort, die ich auf SO gesehen habe, als ich nach einer Lösung suchte, also frage ich mich, warum es nicht mit deinem Code funktioniert. Höher, froh, dass du deinen Code zum Laufen bringen konntest! :) – Markus

Verwandte Themen