Хобрук: Ваш путь к мастерству в программировании

Не удалось создать соответствующий селектор CSS

Проблема заключается в селекторах CSS Python.

Я не могу правильно написать селектор, чтобы выбрать элемент с «Последним». Я пробовал с:

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>

  • Я не думаю, что это возможно только с помощью css. Вот об этом говорится в сообщении. 28.07.2017
  • К сожалению, невозможно создать селектор для определенного текста (см. text" title="есть ли селектор css для элементов, содержащих определенный текст">stackoverflow.com/questions/1520429/). Однако вы могли бы достичь того, чего хотите, выполнив .pager a:last-child? 28.07.2017
  • Возможный дубликат Есть ли селектор CSS для элементов, содержащих определенные текст? 28.07.2017
  • Пожалуйста, укажите, какую библиотеку вы используете. В Python нет встроенной библиотеки селекторов. 28.07.2017
  • lxml-библиотека. Я обновил свой ответ полным сценарием ниже. 28.07.2017

Ответы:


1

Это определенно возможно, и ответ таков:

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/
27.07.2017
  • Это невозможно с CSS, вы можете использовать этот способ, возможно, с jquery. 28.07.2017
  • Ты неправильно меня понял. Я использовал его как селектор css в скрипте python. 28.07.2017
  • Затем, пожалуйста, отредактируйте свой пост, дайте некоторые подробности о нем и добавьте тег. Или я отредактирую ^^) 28.07.2017

  • 2

    Вы не можете выбрать элемент с помощью [text*='blabla']. Вы можете использовать атрибуты только для их выбора.

    Но в любом случае, если вы хотите выбрать последний, вы можете использовать :last-of-type или last-child.

    27.07.2017
    Новые материалы

    Как сделать HTML динамическим с помощью JavaScript
    Код JavaScript выполняется внутри страниц сайта. Таким образом, страница вашего сайта содержит метки HTML, а также пояснения (скрипты), составленные с использованием диалекта сценариев, такого как..

    Деревья классификации и регрессии
    Это мой второй пост об алгоритмах машинного обучения. Мой первый пост посвящен искусственным нейронным сетям, вы можете найти его ниже. Нейронные сети — базовое..

    HMTL - Многозадачное обучение для решения задач НЛП
    Достижение результатов SOTA путем передачи знаний между задачами Область обработки естественного языка включает в себя десятки задач, среди которых машинный перевод, распознавание именованных..

    Решения DBA Metrix
    DBA Metrix Solutions предоставляет удаленного администратора базы данных (DBA), который несет ответственность за внедрение, обслуживание, настройку, восстановление базы данных, а также другие..

    Начало работы с Блум
    Обзор и Codelab для генерации текста с помощью Bloom Оглавление Что такое Блум? Некоторые предостережения Настройка среды Скачивание предварительно обученного токенизатора и модели..

    Создание кнопочного меню с использованием HTML, CSS и JavaScript
    Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

    Внедрите OAuth в свои веб-приложения для повышения безопасности
    OAuth — это широко распространенный стандарт авторизации, который позволяет приложениям получать доступ к ресурсам от имени пользователя, не раскрывая его пароль. Это позволяет пользователям..