为了把从网页中解析的数据存储起来,便于存档和查询,可以把数据存放在数据库中,也可以以文件的方式存储,还可以存储为网络应用程序,即html文件或者CSV格式文件。本文引用一个例子,看看如何将网页的解析数据存储为html文件。
from bs4 import BeautifulSoupimport requests#前置标签PRe_html = '''<!DOCTYPE HTML><html><head><!--meta charset = 'utf-8'--><title>油价历史数据</title></head><body><h2>自去年11月份以来的油价数据(取自本例网站)</h2><table width=600 border=1><tr><td>日期</td><td>92#无铅</td><td>95#无铅</td><td>98#无铅</td></tr>'''#后置标签post_html = """</table></body></html>"""url = 'http://new.cpc.com.tw/division/mb/oil-more4.aspx'src = requests.get(url)#src.encoding = "bgk"html = src.textbs = BeautifulSoup(html, 'html.parser')data = bs.find_all('span' ,{'id':'Showtd'} )rows = data[0].find_all('tr')prices = list()i = 0for row in rows: if i > 18:break; cols = row.find_all("td") if len(cols[1].text ) > 0: item = [cols[0].text, cols[1].text, cols[2].text, cols[3].text] prices.append(item) i += 1#生成数据表html_body = ''for p in prices: html_body += "<tr><td>{}</td><td>{}</td><td>{}</td><td>{}</td></tr>".format(p[0],p[1],p[2],p[3])html_file = pre_html + html_body + post_html#按文本文件的方式生成html文件fp = open('oilprice.html','w')fp.write(html_file)fp.close()用浏览器打开执行的结果:
新闻热点
疑难解答