我正在从URL中爬行数据,并使用美丽的汤爬行。我想将这些爬行的数据存储到Azure Blob存储中,作为斑点。下面是我的代码在我的本地保存数据时,我想直接上传到Azure。
soup = BeautifulSoup(urlopen('www.abc.html'))
outfile = open('C:\Users\ADMIN\filename.txt','w')
data = soup.encode("ascii","ignore")
outfile.write(data)
outfile.close
此代码成功地将网站的数据保存在我的本地文件夹中,请帮助我直接将同一网站的数据直接保存在Azure Blob存储中。我在Azure Blob存储中有钥匙和帐户。
soup=BeautifulSoup(urlopen('www.abc.html'))
data = soup.encode("ascii","ignore")
block_blob_service.create_blob_from_text('containername', 'filename.txt', data)
我正在尝试上述代码,但它不起作用。
没有任何信息显示哪种版本的BeautifulSoup
和方法urlopen
来自python 2中的urllib
或urllib2
或urllib3
您正在使用BeautifulSoup4
使用urllib2
,而我试图重现有关data
类型的问题,而不是str
,而是在下面的代码中失败了。
这是我的示例代码。
from bs4 import BeautifulSoup
import urllib2
soup = BeautifulSoup(urllib2.urlopen("http://bing.com"))
data = soup.encode("ascii","ignore")
print type(data) # It's <type 'str'> here
from azure.storage.blob.blockblobservice import BlockBlobService
block_blob_service = BlockBlobService(account_name='<your-account-name>', account_key='<your-account-key>')
block_blob_service.create_container('mycontainer')
block_blob_service.create_blob_from_text('mycontainer1', 'filename.txt', data)
即使我用urllib
替换CC_11,data
类型是str
。因此,我认为您可以尝试使用StringIO
&amp;block_blob_service.create_blob_from_stream
用于您的代码,如下所示。
from StringIO import StringIO
block_blob_service.create_blob_from_stream('mycontainer', 'filename2.txt', StringIO(data))
它也对我有用。
希望它有帮助。