繁体   English   中英

如何将抓取的内容写入CSV文件?

[英]How can write scraped content to a CSV file?

我需要一些帮助,以将基本的网页抓取工具的输出保存到CSV文件。

这是代码:

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

html_ = urlopen("some_url")
bsObj_ = BeautifulSoup(html_, "html.parser")
nameList_ = bsObj_2.findAll("div", {"class":"row proyecto_name_venta"})

for name in nameList_:

    print(name.get_text())

具体来说,我想将name.get_text()结果保存到CSV文件中。

如果nameList_中的元素是带有以','分隔的列的行','尝试以下操作:

import csv

with open('out.csv', 'w') as outf:
    writer = csv.writer(outf)
    writer.writerows(name.get_text().split(',') for name nameList_)

如果nameList_.get_text()只是一个字符串,并且您想编写单列CSV,则可以尝试以下操作:

import csv

with open('out.csv', 'w') as outf:
    writer = csv.writer(outf)
    writer.writerows([name.get_text()] for name in nameList_)

这是您所要求的非常全面的示例。

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')

Output_File = open('C:/Users/rshuell001/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()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM