2017-01-28 16 views
0

次のコードを使用していくつかのリンクを削りましたが、Excelの1列に格納できないようです。コードを使用すると、リンクアドレスのすべてのアルファベットが解析され、複数の列に格納されます。Pythonでcsvの列に出力を格納する方法

for h1 in soup.find_all('h1', class_="title entry-title"): 
    print(h1.find("a")['href']) 

これは私が見つける必要があるすべてのリンクをもたらします。私が使用CSVに格納する

import csv 
with open('links1.csv', 'wb') as f: 
    writer = csv.writer(f) 
    for h1 in soup.find_all('h1', class_="title entry-title"): 
     writer.writerow(h1.find("a")['href']) 

Iはまた

for h1 in soup.find_all('h1', class_="title entry-title"): 
    dat = h1.find("a")['href'] 

を使用してインスタンスの結果を格納しようとし、他のCSVコードでdatを使用して試みたが動作しないであろう。

+0

をあなたに役立つはずである

私への書き込みプレーンファイルのように見えます。 1行ごとに1行ごとに表示しますか? – Bobby

+0

pandas dataframeのほうがはるかに楽になるかもしれない – Bobby

+0

@Bobbyはい、すべての行に1つのリンク – song0089

答えて

1

回線ごとに1つのリンクだけが必要な場合は、csvライタが必要ない場合もあります。これは、改行文字を使用すると、1つの列に格納することによって何を意味行

ごとに一つのリンクでも
with open('file', 'w') as f: 
    for h1 in soup.find_all('h1', class_="title entry-title"): 
     f.write(str(h1.find("a")['href']) + '\n') 
+0

yea、元々は出力としてCSVを取得したいと思っていましたが、これを実行してからExcelにインポートできます。 – song0089

+0

@ song0089 csvについて魔法はありません。あなたのファイルにxxx.csvという名前を付けるだけです。行に複数の列がある場合は、カンマを追加します。これは今のところ単純です。データが複雑になるなら、私はパンダをチェックアウトすると言うでしょう – Bobby

関連する問題