例如這樣的文檔:

&
&&&
&

&&

&
&
&&&
怎麼獲取id為one下的a標籤的href值。python新手,這個問題想了一天都沒想到辦法,希望大家幫幫忙,謝謝啦。


其實不必太拘泥於用bs4,有些時候正則可能是通用的。


既然是新手,那就用最簡單的方式來解決


1、最老實寫法

soup.find(section, id=one).find(a)[href]

2、抖機靈寫法

soup.a[href] # 默認取第一個元素

3、find_all 神器

soup.find_all(a)[0][href] # 返回一個列表

4、CSS 選擇器大法好

soup.select(section[id=one] a)[0][href] 或

soup.select(#one a)[0][href]

5、XPath 或者 pyquery 模塊也是不錯的選擇哦


soup = BeautifulSoup(html)

x = soup.find(section, {id: two}).find(a) print x[href]強行安利http://beautifulsoup.readthedocs.io/zh_CN/latest/

題主顯然沒有好好學習bs4啊,還有,反對前面用正則表達式來匹配的,結構那麼清晰幹嘛要用正則?


print(soup.find(section, id=one).find(a, class_=first)[href])
我也遇到了這個問題嘞!我用的是lxml庫,用的xpath方法我是這樣寫的(抄的),xpath("//a[@style="PDF"]/@href")(這個寫的好像不太對),雖然我最後沒成功,但是覺得好像蠻好用的,語法也不是很複雜,只要對html瞭解的話應該會很舒服(~(&>_&


直接使用find_all + get的形式,很容易 就提取出來了。


推薦閱讀:
查看原文 >>
相關文章