2016-03-03 46 views
0

我正在從這個site中刮取一些內容。在從csv文件的網站中提取文件後,如同會議頭文字一樣寫出第一個名字,例如,如果字是microsoft它是未來爲osoft,但其餘全部的話來了正確csv文件中的信息未能正確使用python檢索

這裏是我的代碼:

import csv 
import requests 
from bs4 import BeautifulSoup 

with open('random.csv', 'w') as csvfile: 
    a = csv.writer(csvfile) 
    a.writerow(["conferenceHead"]) 

    url = given above  
    r = requests.get(url) 
    soup = BeautifulSoup(r.content) 
    links = soup.find_all("div") 

    r_data = soup.find_all("div",{"class":"conferenceHead"}) 
    for item in r_data: 
     conferenceHead = item.contents[1].text 


     with open('random.csv','a') as csvfile: 
      a = csv.writer(csvfile) 
      data = [conferenceHead] 
     a.writerow(data) 

回答

1

好了,你有你的代碼的三個問題。

  • with open()陳述(在同一文件)
  • 和第二開放 - 以追加方式,是在一個循環中,這使得這個更糟糕的
  • 最後writerow超出範圍,csvfile已經已關閉

這可能會導致緩衝區未寫入文件,並截斷字符串您正在保存。

修復此錯誤(刪除with open('random.csv','a') as csvfile和修復縮進)後,代碼運行並且不會修剪輸出。

import csv 
import requests 
from bs4 import BeautifulSoup 
with open('random.csv', 'w') as csvfile: 
    a = csv.writer(csvfile) 
    a.writerow(["conferenceHead"]) 

    url = "http://www.allconferences.com/search/index"\ 
      "/Category__parent_id:1/Venue__country:United%20States"\ 
      "/Conference__start_date__from:01-01-2010/sort:start_date"\ 
      "/direction:asc/showLastConference:1/page:7/" 
    r = requests.get(url) 
    soup = BeautifulSoup(r.content) 
    links = soup.find_all("div") 

    r_data = soup.find_all("div",{"class":"conferenceHead"}) 

    for item in r_data: 
     conferenceHead = item.contents[1].text 
     data = [conferenceHead] 
     a.writerow(data) 
+0

是否有可能,如果你能給我你的電子郵件ID和幫助我的一些問題。 –

+0

@AtulPant對不起,發郵件是不明智的。但是,如果您想要,請在您的「關於我」頁面中輸入與您聯繫的方式,用\ @JustMe回覆此評論,我會聯繫您。 – JustMe