【问题标题】:Exporting data to csv file after web scraping网页抓取后将数据导出到 csv 文件
【发布时间】:2021-02-05 00:58:47
【问题描述】:
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 试过,但没有用

【问题讨论】:

  • 我尝试使用 open("data.csv", "w+") as csvfile: writer = csv.writer(csvfile) writer.writerow(["SrNo", "Name"]) writer .writerow(["数据 1", "数据 2"])

标签: python-3.x csv


【解决方案1】:

我不是 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()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-18
    • 1970-01-01
    相关资源
    最近更新 更多