2017-12-31 120 views
1

this pageを参照すると、私はすべてn Markets >リンクを取得しようとしていますが、オッズが続くもののみを取得しようとしています。サイトの例を見るには、いくつかのページをスクロールしなければならない場合があります。また、下記のスクリーンショットがあります。結果が続くリンクのみを検索

screenshot of page

スクリーンショットからは、私が(緑の円内)したいリンクが(赤丸)オッズが続いています。私はオッズ(黄色い丸で囲まれている)に続くリンク(赤いXでマークされている)を望んでいません。

.purple-arrowの要素はすべて、その横に.bettype:nth-child(1) .bet-partyが存在する場合は取得できますか?

これからも先行してもシンプルでなければならないが、これは望ましくない。

//*[contains(@href,'/sports-betting/soccer/')]/ancestor::*[contains(@class,'bet-party')]/preceding-sibling::span['other-matches']//*[contains(@href, '/sports-betting/soccer/')] 
+0

あなたがしようとしていることを理解するのは難しいです。コードで何をしようとしているのかを説明してください。オッズが表示されている試合だけを掻き取ろうとしていますか?また、[mcve]を投稿する必要があります。あなたのコードはあまりにも多くをしようとしており、あなたがしようとしていることを絞り込むことも困難です。質問を編集して簡略化してください。あなたがしたいことを(言葉で)明示し、期待される結果を明らかにし、現在の出力と期待される出力を使ってMCVEを投稿してください。 – JeffC

+0

@JeffC修正。したがって、//([@class、 'bet-party']を含む)// // [(href、 '/ sports-betting/soccer /')]をスクラップした場合。リンクは、データスクレーピングの目的を破る賭けパーティー名の隣にはありません。 –

+1

あなたのコメントに基づいて質問を大きく編集して、それを明確にし、簡素化しました。見て、私があなたが探しているものを虚偽ではないことを確認してください。 – JeffC

答えて

1

これはXPathで行うことができます。

//div[@class='container-fluid'] 

クラスのコンテナ流体 'を含むDIVを検索し、それを破壊

//div[@class='container-fluid'][not(.//div[contains(@class,'no-outcomes')])]//a[@class='purple-arrow'] 

。これらは、各マッチでHTMLの行全体を保持するトップレベルコンテナです。

[not(.//div[contains(@class,'no-outcomes')])] 

「no-outcomes」クラスを含む子孫DIVを持つことはできません。 DIVにこのクラスがある場合、その行にはオッズが転記されないため、これらの行には不要です。

//a[@class='purple-arrow'] 

最後に、クラス 'purple-arrow'でリンクを返します。

$x()を使用してChrome開発ツールでこれをテストできます。

関連する問題