Chrome的检测工具将CSS选择器复制到第n个子级--这是bs4不支持的。是否有浏览器,浏览器或应用程序的附加组件来复制CSS选择器中的第n个类型的伪类?
发布于 2018-12-14 05:46:14
BeautifulSoup
有自己的CSS选择器解析实现,它主要解析CSS选择器字符串,并将其转换为"find“命令:source code。
不过,一般来说,编写nth-child
的find()
或find_all()
版本是相当简单的。但是,我理解,总是牢记这一限制并将选择器或选择器的一部分转换为“查找”语言可能是不方便的。
作为替代方案,您可以查看parsel
package,它通常具有更好的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'
https://stackoverflow.com/questions/53770377
复制相似问题