2016-08-11 12 views
0

私は特定のtrタグの中でhrefだけを選択しようとしています。私はちょうどHREFの内のリンクを選択したい美しいスープを見つけるhref

<td headers="LINK"><a href="f?p=106:3:92877880706::NO::P3_ID:5502&amp;cs=tmX92fFLmToJQ69ZOs2w"><img border="0" src="/i_5.0/menu/pencil3416x16.gif"/></a></td> 

:ここ

soup=bs(driver.page_source, 'html.parser') 
obj=soup.find(text="test545") 
new=obj.parent.previous_sibling.previous_sibling.previous_sibling 
print new 
if new.has_key('href'): 
    new=new['href'] 
    print"found!" 

が出力されます:

は、ここに私のコードです。

編集:

は、あなたが正しい解決策をalecxeありがとうございました。テキスト=「test545」と希望のリンクを持つ要素の相対的な位置を含むページの完全なHTMLを提供するソリューション -

soup=bs(driver.page_source, 'html.parser') 
obj=soup.find(text="test545") 
td = obj.find_previous("td", headers="LINK") 
link = td.a 
print(link["href"]) 
+0

あなたは、コード掲示しています。それは働いていないのですか?それは間違いを投げているのですか?どのようなエラー?詳細を追加してください。 – JeffC

+0

申し訳ありませんJeff、私は出力からはっきりと思っていました。エラーはありません。問題は、ちょうどhref値を取得したいということです。私のコードでは、 "新しい"にはhrefキーが必要だと思っていましたが、そうではありませんでした。アレクセが私の問題を解決しました。 –

答えて

2

は、より堅牢なソリューションを提供するために役立つだろう。

しかし、質問に投稿されたものを与えられた、あなただけのnew要素内a要素を見つけることができます。

link = new.a 
print(link["href"]) 

.a.find("a")と同等です。


またobj要素からtd要素を見つけるために.find_previous() methodを使用してみてください:

obj = soup.find(text="test545") 
td = obj.find_previous("td", headers="LINK") 
link = td.a 
print(link["href"]) 
関連する問題