python-3.x
  • csv
  • 2017-03-12 119 views 0 likes 
    0
    import requests 
    from bs4 import BeautifulSoup 
    base_url = "https://www.yelp.com/search?find_desc=&find_loc=" 
    loc = "Newport+Beach,+CA" 
    page = 10 
    url = base_url + loc + '&start='+ str(page) 
    yelp_r = requests.get(url) 
    yelp_soup = BeautifulSoup(yelp_r.text, 'html.parser') 
    businesses = yelp_soup.findAll('div',{'class':'biz-listing-large'}) 
    file_path = 'yelp-{loc}.txt'.format(loc=loc) 
    
    with open(file_path,"a") as textfile: 
        businesses = yelp_soup.findAll('div',{'class':'biz-listing-large'}) 
        for biz in businesses: 
         title = biz.findAll('a',{'class':'biz-name'})[0].text 
         print(title) 
         address = biz.findAll('address')[0].text 
         print(address) 
         phone= biz.findAll('span',{'class':'biz-phone'})[0].text 
         print(phone) 
         page_line="{title}\n{address}\{phone}".format(
          title=title, 
          address=address, 
          phone=phone 
         ) 
         textfile.write(page_line) 
    

    如何將數據導出到csv文件,現在將其導出到txt文件。我試過用csv.writer,但它沒有工作網絡報廢后將數據導出到csv文件

    +0

    我試圖與具有開放( 「data.csv」, 「W +」)作爲csvfile: 作家= csv.writer(csvfile) writer.writerow([ 「SrNo」, 「名稱」]) writer.writerow([「Data 1」,「Data 2」]) –

    回答

    0

    我不是Python的專家,但這基本上是我如何做,如果我是你。

    import urllib2 
    
    listOfStocks = ["AAPL", "MSFT", "GOOG", "FB", "AMZN"] 
    
    urls = [] 
    
    for company in listOfStocks: 
        urls.append('http://real-chart.finance.yahoo.com/table.csv?s=' + company + '&d=6&e=28&f=2015&g=m&a=11&b=12&c=1980&ignore=.csv') 
    
    # Create a CSV on your desktop to hold that data that id scraped from the web . . . 
    Output_File = open('C:/Users/Excel/Desktop/Historical_Prices.csv','w') 
    
    New_Format_Data = '' 
    
    for counter in range(0, len(urls)): 
    
        Original_Data = urllib2.urlopen(urls[counter]).read() 
    
        if counter == 0: 
         New_Format_Data = "Company," + urllib2.urlopen(urls[counter]).readline() 
    
        rows = Original_Data.splitlines(1) 
    
        for row in range(1, len(rows)): 
    
         New_Format_Data = New_Format_Data + listOfStocks[counter] + ',' + rows[row] 
    
    Output_File.write(New_Format_Data) 
    Output_File.close() 
    
    相關問題