2011-12-20 5 views
1

私はウェブクローラーを作っています。ページ内のリンクを見つけるために、私はセレンのxpathを使っていました。コードからすべてのhrefを取得する

driver = webdriver.Firefox() 
driver.get(side) 
Listlinker = driver.find_elements_by_xpath("//a") 

これはうまくいきました。しかし、クローラをテストすると、すべてのリンクがタグの下に来るわけではないことがわかりました。 hrefはareaタグやdivタグでも使用されることがあります。

は、今私は本当に、ウェブクローラーでクロールを置く

driver = webdriver.Firefox() 
driver.get(side) 
Listlinkera = driver.find_elements_by_xpath("//a") 
Listlinkerdiv = driver.find_elements_by_xpath("//div") 
Listlinkerarea = driver.find_elements_by_xpath("//area") 

とこだわっています。

私はxpath "//@href"を試しましたが、動作しません。私はまた、効率的な方法で、美しいスープとlxmlの両方を使用して、すべてのhref URLを取得するいくつかの方法を試しましたが、これまでのところ役に立たない。私は美しいスープとlxmlで私の努力を示すためのコードを持っていないのは申し訳ありませんが、これらが役に立たないことが判明したので、私はそれらを削除しました。これは賢明な習慣ではありません。私は今、私が今までにやり直したいと思っていたことを初めて知りたいのであれば、これらの失敗を保存し始めました。

私がこれを得るに役立つお手伝いをしていただければ幸いです。

答えて

6

これを試してみてください:

ListlinkerHref = driver.find_elements_by_xpath("//*[@href]") 
+2

私は言葉で伝えることができない、あなたのアドバイスがもたらした緊張の緩和感が - どうもありがとうございます! – Rookie

+0

それは良いニュースです:) – Surya

関連する問題