用字符而不是新行分隔的无限CSV文件



正如您将在所附代码中看到的,我有一个函数,其中包含'n'separator命令,这将使我期望代码按每一新行分隔。但相反,它是按性格分开的。这特别奇怪,因为当我告诉它打印刮来的东西时,它工作正常。然后循环停止了,因为它到达了网站上的课程末尾,这是我想要的,也是我期望的。但是,当我试图将它放入CSV文件时,它会从字符串列表的开头开始,并在每个字符之间添加逗号,而不是在每一行之间添加逗号。每次它到达列表的末尾时,它都会转到一行新行,并将其打印一遍,直到无穷大。我认为熊猫在这里能帮上忙。

我需要帮助它只创建一行,由每一行新行分隔,并在循环到达列表末尾时停止循环。你可以在下面找到我要找的一个例子。

这是代码:

import re
import requests
import csv
import pandas as pd
from bs4 import BeautifulSoup
URL = requests.get('https://www.caranddriver.com/reviews/a24847025/2018-ford-mustang-automatic-transmission-performance/')
soup = BeautifulSoup(URL.text, 'html.parser')
#Create a file to write to, add headers row
file = csv.writer(open('CarScrapeTest.csv','w',newline='n'))
lable=file.writerow(['Name'])
for tag in soup.find_all(class_="specs-content"):
DataList=tag.get_text(strip=True, separator="n".replace('"', ""))
for items in DataList:
file.writerow(DataList)

print('DONE!')

当我告诉它打印时,我得到的字符串列表如下:

Specifications
2018 Ford Mustang EcoBoost Premium Automatic
VEHICLE TYPE:
front engine, rear-wheel-drive, 4-passenger, 2-door coupe
PRICE AS TESTED:
$40,570 (base price: $31,690)
ENGINE TYPE:
turbocharged and intercooled DOHC 16-valve inline-4, aluminum block and head, direct fuel injection
Displacement:
138 cu in, 2261 cc
Power:
310 hp @ 5500 rpm
Torque:
350 lb-ft @ 3000 rpm
TRANSMISSION:
10-speed automatic with manual shifting mode
CHASSIS
Suspension (F/R): struts/multilink
Brakes (F/R): 13.9-in vented disc/13.0-in vented disc
Tires: Michelin Pilot Sport 4S, 255/40ZR-19 (100Y)
DIMENSIONS
Wheelbase: 107.1 in
Length: 188.5 in
Width: 75.4 in
Height: 54.3 in
Passenger volume: 83 cu ft
Trunk volume: 14 cu ft
Curb weight: 3750 lb
C/D
TEST RESULTS
Zero to 60 mph: 5.0 sec
Zero to 100 mph: 13.7 sec
Zero to 130 mph: 26.1 sec
Rolling start, 5–60 mph: 5.6 sec
Top gear, 30–50 mph: 3.1 sec
Top gear, 50–70 mph: 3.8 sec
Standing ¼-mile: 13.5 sec @ 99 mph
Top speed (governor limited,
C/D
est): 150 mph
Braking, 70–0 mph: 153 ft
Roadholding, 300-ft-dia skidpad: 0.98 g
C/D
FUEL ECONOMY
Observed: 20 mpg
EPA FUEL ECONOMY
Combined/city/highway: 23/20/29 mpg
`>>CLICK TO DOWNLOAD TEST SHEET<<
—
2018 Ford Mustang GT Automatic
VEHICLE TYPE:
front engine, rear-wheel-drive, 4-passenger, 2-door coupe
PRICE AS TESTED:
$47,160 (base price: $36,185)
ENGINE TYPE:
DOHC 32-valve V-8, aluminum block and heads, port and direct fuel injection
Displacement:
307 cu in, 5038
Power:
460 hp @ 7000 rpm
Torque:
420 lb-ft @ 4600 rpm
TRANSMISSION:
10-speed automatic with manual shifting mode
CHASSIS
Suspension (F/R): struts/multilink
Brakes (F/R): 15.0-in vented disc/13.0-in vented disc
Tires: Michelin Pilot Sport 4S, F: 255/40ZR-19 (100Y) R: 275/40ZR-19 (105Y)
DIMENSIONS
Wheelbase: 107.1 in
Length: 188.5 in
Width: 75.4 in
Height: 54.3 in
Passenger volume: 83 cu ft
Trunk volume: 14 cu ft
Curb weight: 3851 lb
C/D
TEST RESULTS
Zero to 60 mph: 3.8 sec
Zero to 100 mph: 8.5 sec
Zero to 130 mph: 14.8 sec
Zero to 150 mph: 21.7 sec
Rolling start, 5–60 mph: 4.6 sec
Top gear, 30–50 mph: 2.5 sec
Top gear, 50–70 mph: 2.9 sec
Standing ¼-mile: 12.1 sec @ 120 mph
Top speed (governor limited): 156 mph
Braking, 70–0 mph: 156 ft
Roadholding, 300-ft-dia skidpad: 0.97 g
C/D
FUEL ECONOMY
Observed: 16 mpg
75-mph highway driving: 24 mpg
Highway range: 380 miles
EPA FUEL ECONOMY
Combined/city/highway: 19/16/25 mpg
`>>CLICK TO DOWNLOAD TEST SHEET<<

我想要的是这样的东西:

Specifications,2018 Ford Mustang EcoBoost Premium Automatic,VEHICLE TYPE:,front engine, rear-wheel-drive, 4-passenger, 2-door coupe,PRICE AS TESTED:,$40,570 (base price: $31,690),ENGINE TYPE:,turbocharged and intercooled DOHC 16-valve inline-4, aluminum block and head, direct fuel injection,Displacement:,138 cu in, 2261 cc,Power:,310 hp @ 5500 rpm,Torque:,350 lb-ft @ 3000 rpm,TRANSMISSION:,10-speed automatic with manual shifting mode,CHASSIS,Suspension (F/R): struts/multilink,Brakes (F/R): 13.9-in vented disc/13.0-in vented disc,Tires: Michelin Pilot Sport 4S, 255/40ZR-19 (100Y),DIMENSIONS,Wheelbase: 107.1 in,Length: 188.5 in,Width: 75.4 in,Height: 54.3 in,Passenger volume: 83 cu ft,Trunk volume: 14 cu ft,Curb weight: 3750 lb,C/D,TEST RESULTS,Zero to 60 mph: 5.0 sec,Zero to 100 mph: 13.7 sec,Zero to 130 mph: 26.1 sec,Rolling start, 5–60 mph: 5.6 sec,Top gear, 30–50 mph: 3.1 sec,Top gear, 50–70 mph: 3.8 sec,Standing ¼-mile: 13.5 sec @ 99 mph,Top speed (governor limited,,C/D,est): 150 mph,Braking, 70–0 mph: 153 ft,Roadholding, 300-ft-dia skidpad: 0.98 g,C/D,FUEL ECONOMY,Observed: 20 mpg,EPA FUEL ECONOMY,Combined/city/highway: 23/20/29 mpg,>>CLICK TO DOWNLOAD TEST SHEET<<,—,2018 Ford Mustang GT Automatic,VEHICLE TYPE:,front engine, rear-wheel-drive, 4-passenger, 2-door coupe,PRICE AS TESTED:,$47,160 (base price: $36,185),ENGINE TYPE:,DOHC 32-valve V-8, aluminum block and heads, port and direct fuel injection,Displacement:,307 cu in, 5038,Power:,460 hp @ 7000 rpm,Torque:,420 lb-ft @ 4600 rpm,TRANSMISSION:,10-speed automatic with manual shifting mode,CHASSIS,Suspension (F/R): struts/multilink,Brakes (F/R): 15.0-in vented disc/13.0-in vented disc,Tires: Michelin Pilot Sport 4S, F: 255/40ZR-19 (100Y) R: 275/40ZR-19 (105Y),DIMENSIONS,Wheelbase: 107.1 in,Length: 188.5 in,Width: 75.4 in,Height: 54.3 in,Passenger volume: 83 cu ft,Trunk volume: 14 cu ft,Curb weight: 3851 lb,C/D,TEST RESULTS,Zero to 60 mph: 3.8 sec,Zero to 100 mph: 8.5 sec,Zero to 130 mph: 14.8 sec,Zero to 150 mph: 21.7 sec,Rolling start, 5–60 mph: 4.6 sec,Top gear, 30–50 mph: 2.5 sec,Top gear, 50–70 mph: 2.9 sec,Standing ¼-mile: 12.1 sec @ 120 mph,Top speed (governor limited): 156 mph,Braking, 70–0 mph: 156 ft,Roadholding, 300-ft-dia skidpad: 0.97 g,C/D,FUEL ECONOMY,Observed: 16 mpg,75-mph highway driving: 24 mpg,Highway range: 380 miles,EPA FUEL ECONOMY,Combined/city/highway: 19/16/25 mpg,>>CLICK TO DOWNLOAD TEST SHEET<<

但我得到的是更像这样的东西:

S,p,e,c,i,f,i,c,a,t,i,o,n,s, ,2,0,1,8, ,F,o,r,d, ,M,u,s,t,a,n,g, ,E,c,o,B,o,o,s,t, ,P,r,e,m,i,u,m, ,A,u,t,o,m,a,t,i,c,,V,E,H,I,C,L,E, ,T,Y,P,E,:,,f,r,o,n,t, ,e,n,g,i,n,e, ,r,e,a,r,-,w,h,e,e,l,-,d,r,i,v,e, ,4,-,p,a,s,s,e,n,g,e,r, ,2,-,d,o,o,r, ,c,o,u,p,e,,P,R,I,C,E ,A,S, ,T,E,S,T,E,D,:,,$,4,0,,5,7,0, ,(,b,a,s,e, ,p,r,i,c,e,:, ,$,3,1,,,6,9,0,),,E,N,G,I,N,E ,T,Y,P,E,:,,t,u,r,b,o,c,h,a,r,g,e,d, ,a,n,d, ,i,n,t,e,r,c,o,o,l,e,d, ,D,O,H,C, ,1,6,-,v,a,l,v,e, ,i,n,l,i,n,e,-,4, ,a,l,u,m,i,n,u,m, ,b,l,o,c,k, ,a,n,d, ,h,e,a,d, ,d,i,r,e,c,t, ,f,u,e,l, ,i,n,j,e,c,t,i,o,n,,D,i,s,p,l,a,c,e,m,e,n,t,:,1,3,8, ,c,u, ,i,n, ,2,2,6,1, ,c,c,P,o,w,e,r,:,3,1,0, ,h,p, ,@, ,5,5,0,0, ,r,p,m,T,o,r,q,u,e,:,3,5,0, ,l,b,-,f,t, ,@, ,3,0,0,0, ,r,p,m,,T,R,A,N,S,M,I,S,S,I,O,N,:,...
S,p,e,c,i,f,i,c,a,t,i,o,n,s, ,2,0,1,8, ,F,o,r,d, ,M,u,s,t,a,n,g, ,E,c,o,B,o,o,s,t, ...
S,p,e,c,i,f,i,c,a,t,i,o,n,s, ,2,0,1,8, ,F,o,r,d, ,M,u,s,t,a,n,g, ,E,c,o,B,o,o,s,t, ...
#Continues for infinite rows

使用Pandas:

import re
import requests
import csv
from bs4 import BeautifulSoup
import pandas as pd
import numpy as np
URL = requests.get('https://www.caranddriver.com/reviews/a24847025/2018-ford-mustang-automatic-transmission-performance/')
soup = BeautifulSoup(URL.text, 'html.parser')
#Create a file to write to, add headers row 
csv.writer(open('CarScrapeTest.csv','a',newline='n'))
for tag in soup.find_all(class_="specs-content"):
DataList=pd.Series(tag.get_text(strip=True, separator="n".replace('"', "")).split())
df.to_excel('CarScrapeTest.xlsx', sheet_name='Car&Driver')

df = pd.DataFrame(DataList).transpose()

这给出了一个excel文件,第一列为零,第一行从零开始向上计数。但是所有的字符串都在一行中,字符串中任何有空格的地方都被另一列隔开。

最新更新