我有一个程序,从一个网站打印信息,但我想把这个信息在一个csv或excel文件。我就是这么做的:
import requests
from bs4 import BeautifulSoup
import re
import xlsxwriter
workbook = xlsxwriter.Workbook('nossarede.xlsx')
worksheet = workbook.add_worksheet()
request = requests.get("http://www.drogariasnossarede.com.br/nossas-lojas")
soup = BeautifulSoup(request.content, 'html.parser')
data = soup.find_all("div", class_='item')
for container in data:
Pharmacyname = container.find_all("h3")
Pharmacyadd = container.find_all("p")
for pharmacy in Pharmacyname:
print(pharmacy.text)
for add in Pharmacyadd:
print(add.text)
print('')
直到这里是完美的,它打印完美的方式,我想要的。然后我尝试了这个:
import csv
with open('names.csv', 'wb') as ofile:
writer = csv.writer(ofile)
for container in data:
Pharmacyname = container.find_all("h3")
Pharmacyadd = container.find_all("p")
for pharmacy in Pharmacyname:
for add in Pharmacyadd:
writer.writerow((pharmacy.text[0], add.text[1]))
但它不起作用。 它表明:
TypeError: a bytes-like object is required, not 'str'
我怎么做?? 谢谢!你知道吗
您正在用
wb
以字节模式打开文件。你知道吗改变一下:
with open('names.csv', 'wb') as ofile:
为了
with open('names.csv', 'w') as ofile:
还有一件事。你的
writerow
错了。您只得到字符串的第一个字符。你知道吗更改此项:
用于:
更改:
即写入字节模式,以:
完整代码:
相关问题 更多 >
编程相关推荐