2016-06-20 3 views
-2

OK、私はウェブサイトから必要な情報をスクレープし、クリーンアップして、必要な方法でフォーマットすることができました。問題は、私は説明と価格が1行に必要なことです。私はそれを行うことができましたが、インデントされたスペースで。私は1行ですべてをクリーンアップする方法を理解できません。私はPythonで1行の情報を整理する必要があります

すべてのヘルプは

おかげ

import requests 
from bs4 import BeautifulSoup 
import csv 

b = open ('canadianappliances.csv', 'a', newline='') 
a = csv.writer(b, delimiter=',') 


r = requests.get("http://www.canadianappliance.ca/Refrigerators-And-Fridges-3/Full-Size-Refrigerators-38/French-Door-Refrigerators-48/?per_page=all") 

r.content 

soup = BeautifulSoup(r.content, "lxml") 


g_data = soup.find_all("h2", {"class": "product_link"}) 
p_data = soup.find_all("td", {"class": "pi-price-final"}) 

for item in g_data: 
    print(item.get_text(strip=True).replace("\n", " ")) 

for price in p_data: 
    print(price.get_text(strip=True).replace("\n", " ")) 

for g, p in zip(g_data, p_data): 
    print(g.text, p.text) 
+0

タプルにまとめてタプルを反復することができます。 –

+0

使用しているPythonのバージョンは? –

+0

申し訳ありません、ただジップを追加しました。私は1つの行にジッパーが必要です。私はPython 3.5を使用しています – nobb666

答えて

1

を高く評価しているかき取りg_datap_dataのテキスト値は、両側に空白がたくさんあります。各項目を1行に印刷するには、それらを削除する必要があります。同様:print文の括弧はどこに行ったあなたが思っている場合

>>> for g,p in zip(g_data, p_data): 
...  print g.text.strip().replace('\n',' '), p.text.strip() 
... 
Samsung - RF220NCTASR $1,397.72 
Samsung - RF18HFENBSR $1,599.00 
Samsung - RF23HCEDBSR $2,179.92 
Samsung - RF28HMEDBSR $2,498.78 
# and it goes on and on and on 

私は、Python 2.7を使用しています。

+0

ありがとう、それは動作します。 – nobb666

関連する問題