1

私はこれのバリエーションで遊んで髪を引き裂いています:

'//*[@id="mw-content-text"]/div[2]/table/tbody/tr/td/div/ul/li/a'

この Wiki ページからすべての学区の URL を取得するための XPath として: http://en.wikipedia.org/wiki/List_of_school_districts_in_Arkansas。正しいXPathは何ですか?

前もって感謝します!

コードスニペット:

            print 3.1, tree.xpath('//*[@id="mw-content-text"]/div[2]')
            print 3.2, tree.xpath('//*[@id="mw-content-text"]/div[2]/table')
            print 3.3, tree.xpath('//*[@id="mw-content-text"]/div[2]/table/tbody')
            print 3.4, tree.xpath('//*[@id="mw-content-text"]/div[2]/table/tbody')     
            print 3.5, tree.xpath('//*[@id="mw-content-text"]/div[2]/table/tbody/tr/td/div/ul/li/a/text()')                           
            for row in tree.xpath('//*[@id="mw-content-text"]/div[2]/table/tbody/tr/td/div/ul/li/a/text()'):
                print row
                district_urls.append('http://en.wikipedia.org'+row.get('href')) 

参考として:

3.1 [<Element div at 0x1109f7f00>]
3.2 [<Element table at 0x1109f7f00>]
3.3 []
3.4 []
3.5 []
4

2 に答える 2

2

Firebug または同様の開発者ツールを使用して、この XPath 式を作成していると思います。<tbody/>これらは s の周りにタグを必要とする DOM で動作し<tr/>、ソース コードで指定されていない場合はこれらが挿入されます。ページのソース ( Firebug を使用せずwget、必要に応じてまたはを使用) を見ると、タグcurlがないことがわかります。<tbody/>

次の表現を使用します。

//*[@id="mw-content-text"]/div[2]/table/tr/td/div/ul/li/a
于 2013-08-14T18:46:06.173 に答える