很抱歉回答了这个基本问题,但我仍在努力学习。我正试图找到一种聪明的方法,使用Selenium2和<tr>
(页面上的多个<tr>
)来使用以下HTML抓取一些股票数据:
<A NAME="line209"></A><tr align="right" class="odd" nowrap>
<A NAME="line210"></A><td>& </td>
<A NAME="line211"></A><td align="left"><strong>
<A NAME="line212"></A>BAC US N</strong></td>
<A NAME="line213"></A><td>+</td>
<A NAME="line214"></A><td>17.45</td>
<A NAME="line215"></A><td>17.49</td>
<A NAME="line216"></A><td><strong>17.47</strong></td>
<A NAME="line217"></A><td><strong><font class="fontgreen">
<A NAME="line218"></A>0.14 (0.81%)</font></strong></td>
<A NAME="line219"></A><td>81,974,096</td>
<A NAME="line220"></A><td align="middle"></td>
<A NAME="line221"></A><td>& </td>
<A NAME="line222"></A></tr>
在上面的代码中,我需要提取:
好的,下面的代码做我想要做的事情。然而,本着学习的精神,我想使它更有效率。希望你能帮上忙:
def getData():
tickerData=[]
tickerCounter=0
ignoreText=['Symbol','T','Bid','Ask','Last',' ','','Change','Volume','FSI','Buy Sell ']
if quoteType=="Summary":
numDataPoints=9
elif quoteType=="Detail":
numDataPoints=21
for tr in driver.find_elements_by_xpath("//table[contains(@class, 'tableStyle2')]"):
tds=tr.find_elements_by_tag_name('td')
for td in tds:
if td.text not in ignoreText:
if len(tickerData) == numDataPoints:
insertData(tickerData,tickerCounter)
tickerData=[]
tickerCounter += 1
tickerData.append(td.text)
insertData(tickerData,tickerCounter)
提前谢谢!!
发布于 2014-03-13 19:10:34
将该字符串加载到名为html的变量中。
from bs4 import BeautifulSoup
soup = BeautifulSoup(html)
tags = soup.findAll('td')
for tag in tags:
print tag.getText()
BeautifulSoup是解析数据的多种方法之一。如果通过查找字符串来理解基本Python,也可以使用纯Python函数“
https://stackoverflow.com/questions/22317417
复制相似问题