2017-02-24 2 views
0

私はこのコードを修正する方法を見つけることができるかどうかを確認するためにここにたくさんのスレッドを行ってきましたが、これはうまく動作しないようです。私はサイトからのリンクを掻き集めてcsvに書き込もうとしています。ここでは、コードがあります:BeautifulSoup Absoute URLを印刷するCSV

私はそこに道の95%を取得する方法を見つけましたが、ただのhrefを取得するために何かをしないのです:

from bs4 import BeautifulSoup 
    import urllib.request 
    import urllib.parse 
    import csv 

    j = urllib.request.urlopen("http://cnn.com") 
    soup = BeautifulSoup(j, "lxml") 
    data = soup.find_all('a', href=True) 

    for url in soup.find_all('a', href=True): 
#print(url.get('href')) 

     with open('marcel.csv', 'w', newline='') as csvfile: 
      write = csv.writer(csvfile) 
      write.writerows(data) 

答えて

0

を試みることができるここにあなたが何をしたいのか考えられます。

from bs4 import BeautifulSoup 
import requests #better than urllib 
import csv 

j = requests.get("http://cnn.com").content 
soup = BeautifulSoup(j, "lxml") 

data = [] 
for url in soup.find_all('a', href=True): 
    print(url['href']) 
    data.append(url['href']) 

print(data) 

with open("marcel.csv",'w') as csvfile: 
    write = csv.writer(csvfile, delimiter = ' ') 
    write.writerows(data) 
+0

それを解決しました!ありがとう:)ちょうど理解の目的のために、データの追加= []という意味ですか? – Jarman

+0

これは、単に「この場合、データと呼ばれる空のリストを作成する」ことを意味します。このようにして.appendメソッドを使用してループ内に記入することができます(リストがまだ存在しない場合はこのメソッドは機能しません) –

+0

出力に一意の値だけを取得する方法はありますか?私が得ることを望んでいるのは、絶対リンクのリストです。例えば、http://cnn.com/(ここで掻き出したURL)です。しかし重複する値のないリスト。 – Jarman

0

私はそれ

from openpyxl import Workbook,load_workbook 
取得する openpyxlを使用します

とても簡単だと思います。 それは私のプロジェクトの一部であり、あなたはそれを

def createExcel(self): 
     wb = Workbook(optimized_write=True) 
     ws = wb.create_sheet(title='书籍列表') 
     row0 = ['编号','条码号','题名','责任者','借阅日期','归还日期','馆藏地'] 
     ws.append(row0) 
     save_path = 'book_hist.xlsx' 
     wb.save(save_path) 

    def saveToExcel(self,data_list): 
     wb = load_workbook(filename='book_hist.xlsx') 
     ws = wb.get_sheet_by_name('书籍列表') 
     for i in range(len(data_list)): 
      ws.append(data_list[i]) 
     save_path = 'book_hist.xlsx' 
     wb.save(save_path) 
+0

申し訳ありませんが、多分私は[OK]をので、私はそこに道の95%を取得する方法を考え出し – Zeroxus

+0

あなたの言葉を誤解。ここに私が変えたものがあります: – Jarman

関連する問題