2017-07-27 15 views
1

問題はPythonのCSSセレクタに関するものです。適切なCSSセレクタを作成できません

"最後"の項目を選択するための正しい方法でセレクタを書くことはできません。私は試してみました:その項目があり、その中

div.pager a:[text*='Last'] 

要素:

<div class="pager"><a href="/search/1080p/" class="current">1</a> <a href="/search/1080p/t-23/">23</a> <a href="/search/1080p/t-255/">Last</a> </div> 
+1

私はしないでくださいcssだけで可能だと思う。 [Here](https://stackoverflow.com/questions/5441680/css-selector-based-on-element-text)は、それについて話している投稿です。 –

+0

残念ながら、特定のテキストのセレクタを作成することはできません(https://stackoverflow.com/questions/1520429/is-there-a-css-selector-for-elements-containing-certain-textを参照)。しかし、あなたは '.pager a:last-child'を実行することによって、あなたが望むものを達成できるかもしれません。 – joshhunt

+0

[特定のテキストを含む要素のCSSセレクタはありますか?](https://stackoverflow.com/questions/1520429/is-there-a-css-selector-for-elements-containing-certain-text) – Hans

答えて

2

それは間違いなく可能であり、答えは次のとおりです。

div.pager a:contains("Last") 

そして、ここでは、Pythonスクリプト内で使用されるセレクタである:

import requests 
from lxml import html 

main_link = "https://www.yify-torrent.org/search/1080p/" 
base_link = "https://www.yify-torrent.org" 

def get_links(item_link): 
    response = requests.get(item_link).text 
    tree = html.fromstring(response) 
    next_page = tree.cssselect('div.pager a:contains("Next")')[0].attrib["href"] 
    last_page = tree.cssselect('div.pager a:contains("Last")')[0].attrib["href"] 
    print(base_link + next_page," ",base_link + last_page) 

get_links(main_link) 

結果:

https://www.yify-torrent.org/search/1080p/t-2/ 
https://www.yify-torrent.org/search/1080p/t-255/ 
+0

CSSでは不可能なので、おそらくjqueryでその方法を使うことができます。 – pacanga

+0

あなたは私が間違っています。私はPythonスクリプトでCSSセレクタとして使用しました。 – SIM

+0

投稿を編集して詳細を入力し、タグを追加してください。または私はそれを編集します^^) – pacanga

1

をあなたは[text*='blabla']で項目を選択することはできません。属性を選択するためにのみ属性を使用できます。

とにかく最後のものを選択する場合は、:last-of-typeまたはlast-childを使用できます。

関連する問題