Любой способ получить селектор CSS с псевдоклассом nth-of-type? - PullRequest
0 голосов
/ 14 декабря 2018

Инструмент Chrome Inspection копирует селектор CSS с nth-child - который не поддерживается bs4.Существуют ли надстройки для браузеров, браузеров или приложений для копирования селектора CSS с псевдоклассом nth-типа?

1 Ответ

0 голосов
/ 14 декабря 2018

BeautifulSoup имеет свою собственную реализацию синтаксического анализа CSS-селектора, которая в основном анализирует строку селектора CSS и переводит ее в команды «поиска»: исходный код .

Хотя это довольно простонаписать find() или find_all() версию nth-child в целом.Но я понимаю, что было бы неудобно всегда помнить об этом ограничении и переводить селектор или часть селектора для «поиска» языка.

В качестве альтернативы вы можете проверить parsel пакет , который в целом имеет лучшую поддержку селектора CSS:

In [1]: from parsel import Selector

In [2]: sel = Selector(text="""<html>
   ...:         <body>
   ...:             <h1>Hello, Parsel!</h1>
   ...:             <ul>
   ...:                 <li><a href="http://example.com">Link 1</a></li>
   ...:                 <li><a href="http://scrapy.org">Link 2</a></li>
   ...:             </ul
   ...:         </body>
   ...:         </html>""")

In [3]: sel.css('ul li:nth-child(2) a::attr(href)').extract_first()
Out[3]: 'http://scrapy.org'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...