對於我的股票篩選工具,我必須在腳本中從BeautifulSoup切換到lxml。在我的Python腳本下載了我需要處理的網頁之後,BeautifulSoup能夠正確解析它們,但是這個過程太慢了。解析一隻股票的資產負債表,損益表和現金流量表,需要花費大約10秒鐘的時間,而且由於我的腳本有超過5000只股票需要分析,所以這是不可接受的。Python/lxml:如何在HTML表格中捕捉一行?
根據一些基準測試(http://www.crummy.com/2012/1/22/0),lxml比BeautifulSoup快近100倍。因此,lxml應該能夠在10分鐘內完成一項需要14小時BeautifuSoup的工作。
如何使用HTML捕獲HTML表格中行的內容?我的腳本已經下載並需要解析HTML頁面的一個例子是在http://www.smartmoney.com/quote/FAST/?story=financials&opt=YB
使用BeautifulSoup解析這個HTML表格的源代碼是:
url_local = local_balancesheet (symbol_input)
url_local = "file://" + url_local
page = urllib2.urlopen (url_local)
soup = BeautifulSoup (page)
soup_line_item = soup.findAll(text=title_input)[0].parent.parent.parent
list_output = soup_line_item.findAll('td') # List of elements
如果我在尋找現金和短期投資,title_input =「現金&短期投資」。
如何在lxml中執行相同的功能?
從其他谷歌搜索,它看起來像要走的路是lxml,etree,HTMLparser和xpath。 xpath具有指定要查找的代碼。如何讓xpath在包含特定文本的HTML表中查找行? – jhsu802701