beautifulsoup怎麼獲取指定section下的指定a標籤的href?
例如這樣的文檔:
&&&& && &&
&&&& 怎麼獲取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的形式,很容易 就提取出來了。
推薦閱讀: