【網絡爬蟲入門04】徹底掌握BeautifulSoup的CSS選擇器


【網絡爬蟲入門04】徹底掌握BeautifulSoup的CSS選擇器

廣東職業技術學院  歐浩源 2017-10-21

1、引言

    目前,除了官方文檔之外,市面上及網絡詳細介紹BeautifulSoup使用的技術書籍和博客軟文並不多,而在這僅有的資料中介紹CSS選擇器的少之又少。在網絡爬蟲的頁面解析中,CCS選擇器實際上是一把效率甚高的利器。雖然資料不多,但官方文檔卻十分詳細,然而美中不足的是需要一定的基礎才能看懂,而且沒有小而精的演示實例。不過,在本文中,你可以看到......絕對的干活!

2、CSS選擇器概述

    BeautifulSoup支持大部分的CSS選擇器。
    語法為:向tag對象或BeautifulSoup對象的.select()方法中傳入字符串參數,選擇的結果以列表形式返回,即返回類型為list。
    tag.select("string")
    BeautifulSoup.select("string")
    注意:在取得含有特定CSS屬性的元素時,標簽名不加任何修飾,類名前加點,id名前加 #。

3、CSS測試樣例

4、通過標簽查找

例1:選擇所有的title標簽。

例2:選擇所有的p標簽中的第3個標簽。

例3:選擇body標簽下的所有a標簽。

例4:選擇body標簽下的直接子標簽a。

例5:選擇id=link1后的所有兄弟節點標簽。類名前加點,id名前加 #。

例6:選擇id=link1后的下一個兄弟節點標簽。

5、通過CSS類名查找

例7:查找class類名為sister的標簽。

例8:查找P標簽下class類名為title的標簽。

6、通過標簽的id屬性查找

例9:選擇id屬性為link2的所有標簽。

例10:選擇a標簽,其id屬性為link2的標簽。

7、同時用多種CSS選擇器查詢元素

例11:選擇id屬性為link2和id屬性為link3的所有標簽。

例12:選擇class屬性為red、id屬性為link2和id屬性為link3的所有標簽。

8、通過是否存在某個屬性來查找

例13:查找a標簽下存在herf屬性的標簽。

9、通過屬性的值來查找

例14:選擇a標簽,其屬性href=http://example.com/lacie的所有標簽。

例15:選擇a標簽,其href屬性以http開頭的所有標簽。

例16:選擇a標簽,其href屬性以lie結尾的所有標簽。

例17:選擇a標簽,其href屬性包含.com的標簽。

10、通過標簽逐層查找

例18:首先選中所有的p標簽中的第3個標簽,然后在該標簽中查找name的屬性值為OHY的標簽。

例19:首先選中所有的p標簽中的第3個標簽,然后在該標簽列表中查找a標簽,並將該列表中的第1個標簽的文本取出。

11、返回查找到的元素的第一個標簽

例20:選擇class類名為sister的所有標簽中的第一個。

12、小結

    如果你想快速的實現功能更強大的網絡爬蟲,那么BeautifulSoupCSS選擇器將是你必備的利器之一。BeautifulSoup整合了CSS選擇器的語法和自身方便使用API。在網絡爬蟲的開發過程中,對於熟悉CSS選擇器語法的人,使用CSS選擇器是個非常方便的方法。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM