我是数据报废的新手。这是我在python中编写的第一个程序,用于废弃数据并将其存储到文本文件中。我编写了以下代码来废弃数据。
from bs4 import BeautifulSoup
import urllib2
text_file = open("scrap.txt","w")
url = urllib2.urlopen("http://ga.healthinspections.us/georgia/search.cfm?1=1&f=s&r=name&s=&inspectionType=&sd=04/24/2016&ed=05/24/2016&useDate=NO&county=Appling&")
content = url.read()
soup = BeautifulSoup(content, "html.parser")
type = soup.find('span',attrs={"style":"display:inline-block; font- size:10pt;"}).findAll()
for found in type:
text_file.write(found)
但是,我使用命令提示符运行此程序,它会显示以下错误。
c:\PyProj\Scrapping>python sample1.py
Traceback (most recent call last):
File "sample1.py", line 9, in <module>
text_file.write(found)
TypeError: expected a string or other character buffer object
我在这里缺少什么,或者我还没有添加任何东西。感谢。
答案 0 :(得分:0)
您需要检查type
是否为None
,即soup.find
实际上找不到您搜索的内容。
另外,请勿使用名称type
,它是内置的。
find
,非常像find_all
返回一个/ Tag
个对象的列表。如果您在Tag
上调用print,则会看到字符串表示形式。这种自动化不会在file.write
上调用。您必须决定要写found
的{{3}}。