2016-03-03 44 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