BeautifulSoup可以使我们通过网页的标签找到网页中我们想要的特定数据。本案例可以清楚地理顺从html文件变化到我们想要获得的数据。Python程序如下:
from bs4 import BeautifulSoupimport requestsurl = 'http://new.cpc.com.tw/division/mb/oil-more4.aspx'html = requests.get(url).textbs = BeautifulSoup(html, 'html.parser')#PRint(bs)data = bs.find_all('span' ,{'id':'Showtd'} )#print(data)rows = data[0].find_all('tr')#print(rows)prices = list()i = 0for row in rows: if i < 16: print(row) 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 += 1i = 0for p in prices: if i < 16: print(p) i += 1现在从变量容器的变化过程,认识提取特定数据的步骤:通过BeautifulSoup(html, 'html.parser'),把html文件包装为可以解析的对象,该对象对应的文本文件(部分内容)是:2.操作可解析的对象sb,通过find_all('span',{'id':'Showtd'}),把标签<span></span>的内容找出来,形成数据表:3.再从上面的数据表中,找出标签<tr></tr>表示的项,组成如下表:4.对上表的每个表项<td></td>再进行提取,得到最终数据:
新闻热点
疑难解答