日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用lxml代替beautifulsoup

發布時間:2023/12/19 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用lxml代替beautifulsoup 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

深入使用過lxml的都會深深地喜歡上它,雖然BeautifulSoup很流行,但是深入了解lxml后,你就再也不會使用bs了

我覺得beautifulsoup不好用,速度也慢(雖然可以使用lxml作為解析器了).另外soup.find_all這種簡直就是手工時代的操作(很多人使用find find_all這幾個函數, 其實它們使用起來不是很愉快),手工操作的另一個特征是需要自己手寫正則表達式(正則是一個小范圍內的軍刀,大范圍用是不對的)

多使用soup.select才是正確的選擇, 多簡單方便.

爬蟲對html頁面做的操作,大部分時候在選取東西,find_all還要自己手工去寫(比如手工寫正則表達式, it's a hell).

使用XPath以及CSS選擇器才是明智的選擇,這兩者,瀏覽器都可以幫我們自動生成,何樂不為?

另外,lxml用起來舒服多了,速度也不錯.

另外,lxml安裝是一個難題,常有很多錯誤,令人望而生畏,這里提供兩種方法

  • Windows平臺: 使用Anaconda集成安裝包,無腦解決

  • Ubuntu平臺: sudo apt-get install python-lxml無腦解決
    我從不覺得去自己解決lxml在這些平臺的安裝有什么很大價值,反而容易令人自我懷疑.(寶貴的時間為何要浪費在這種事情上面?)

  • 下面就來一個示例:

    ##################### # 獲取SF首頁的標題 ##################### from lxml.etree import HTML import requestsurl = 'https://segmentfault.com/' css_selector = '.title>a' #這是利用瀏覽器自動獲取的,我甚至都不用知道它是什么意思text = requests.get(url).text page = HTML(text)titles = [] for title in page.cssselect(css_selector):titles.append(title.text)print titles# 這一段程序寫下來,不用動腦筋(無腦寫),不消耗心智 利用瀏覽器獲取XPath/CSS選擇器的方法: 1. 推薦使用Firefox, 比Chrome強大太多 2. 右鍵元素-->copy XPath

    總結

    以上是生活随笔為你收集整理的使用lxml代替beautifulsoup的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。