from bs4 import BeautifulSoup
import requests
import csv
page=requests.get("http://www.gigantti.fi/catalog/tietokoneet/fi_kannettavat/kannettavat-tietokoneet")
data=BeautifulSoup(page.content)
h=open("test.csv","wb+")
h.write(data)
h.close()
print (data)
我已经尝试运行代码,因为它没有在csv文件中打印它运行完美但是当我尝试将其保存在csv中时我得到错误:参数1必须可以转换为缓冲区,而不是BeautifulSoup。请提前帮助并提前致谢
答案 0 :(得分:3)
我不知道是否有人能够解决它,但我的命中和试验有效。问题是我没有将内容转换为字符串。
#what i needed to add was:
#after line data=BeautifulSoup(page.content)
a=str(data)
希望这会有所帮助
答案 1 :(得分:2)
你想要做的事情没有任何意义。
正如Beautiful Soup Documentation所述:
Beautiful Soup是一个Python库,用于从HTML和XML文件中提取数据。它适用于您最喜欢的解析器,以提供导航,搜索和修改解析树的惯用方法。它通常可以节省程序员数小时或数天的工作量。
您似乎没有提取任何数据,但是您尝试将BeautifulSoup
对象写入一个没有意义的文件。
>>> type(data)
<class 'bs4.BeautifulSoup'>
你应该使用BeautifulSoup
来搜索数据中的某些信息,然后使用这些信息,这是一个无用的例子:
from bs4 import BeautifulSoup
import requests
page = requests.get("http://www.gigantti.fi/catalog/tietokoneet/fi_kannettavat/kannettavat-tietokoneet")
data = BeautifulSoup(page.content)
with open("test.txt", "wb+") as f:
# find the first `<title>` tag and retrieve its value
value = data.findAll('title')[0].text
f.write(value)
似乎您应该使用BeautifulSoup
来检索产品列表中每个产品的所有信息,并将它们放入csv文件中的列中,如果我猜对了,但我会留下那个工作由你决定。您必须使用BeautifulSoup
查找html
中的每个产品,然后检索其所有详细信息并打印到csv