2013-05-04 67 views
3

我正在編寫一個工具,需要在網頁上的div內收集所有網址,但在該div之外沒有網址。簡化的頁面,它看起來是這樣的:使用lxml查找div內的所有鏈接

<div id="bar"> 
    <a link I dont want> 
    <div id="foo"> 
     <lots of html> 
     <h1 class="baz"> 
     <a href=」link I want」> 
     </h1> 
     <h1 class="caz"> 
     <a href=「link I want」> 
     </h1> 
    </div> 
</div> 

當選擇使用Firebug div和選擇的XPath我得到:// * [@ ID = 「富」。到現在爲止還挺好。不過,我堅持試圖找到div foo內的所有url。請幫助我找到一種方法來提取元素中由href定義的url。

示例代碼類似於我正在使用W3Schools的上:

import mechanize 
import lxml.html 
import cookielib 

br = mechanize.Browser() 
cj = cookielib.LWPCookieJar() 
br.set_cookiejar(cj) 

br.set_handle_equiv(True) 
br.set_handle_gzip(True) 
br.set_handle_redirect(True) 
br.set_handle_referer(True) 
br.set_handle_robots(False) 

br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1) 
br.addheaders = [('User-agent', 'WatcherBot')] 

r = br.open('http://w3schools.com/') 
html = br.response().read() 
root = lxml.html.fromstring(html) 

hrefs = root.xpath('//*[@id="leftcolumn"]') 

# Found no solution yet. Stuck 

謝謝您的時間!

回答

9

你可能想這樣的:

hrefs = root.xpath('//div[@id="foo"]//a/@href') 

這會給你所有href值的列表,從內<div id="foo">a標籤在任何級別

+0

真棒感謝。 – Teletha 2013-05-04 22:00:55

相關問題