2017-12-18 12 views
-1
<TABLE cellSpacing=0 cellPadding=0 width=700 border=0 617px; HEIGHT: 22px 23px 536px;> 
    ... 
</TABLE> 

我想選擇的所有元素就像以上:所述標籤是TABLE,並且有幾個屬性(cellSpacing=0,cellPadding=0,width=700,border=0)。的Python,BeautifulSoup4:其中多個屬性等於多個值中選擇的元素分別

我嘗試以下Python腳本:

import requests 
from bs4 import BeautifulSoup 
result=requests.get("http://news.scu.edu.cn/news2012/cdzx/I0201index_1.htm") 
result.encoding="GBK" 
soup=BeautifulSoup(result.text,"html.parser") 
soup=soup.find("TABLE",attrs={"cellspacing":"0","cellpadding": "0","width": 
"700","border":"0"}) 
print(soup) 

沒有錯誤的腳本運行,但美麗的湯發現nothing.This一定是錯誤的,如果你打開的網頁(http://news.scu.edu.cn/news2012/cdzx/I0201index_1.htm)與瀏覽器,點擊右鍵,去檢查 - >網絡 - >文檔 - >響應,搜索<TABLE cellSpacing=0 cellPadding=0 width=700 border=0 617px; HEIGHT: 22px 23px 536px;>,您會發現30條匹配結果。

回答

0

TABLE標籤名稱必須的是小寫字母:

soup = soup.find("table", ...) 

這裏是一個reference section in the documentation

由於HTML標記和屬性是不區分大小寫,所有三個HTML解析器轉換標籤並將名稱歸爲小寫字母。也就是說,標記<TAG></TAG>轉換爲<tag></tag>

+0

謝謝,男人!沒錯,我把「TABLE」換成了「table」,最後美麗的湯回覆了一些有效的信息。但似乎還有另一個問題:美麗的湯只返回30的第一個元素,你有什麼想法是什麼問題? –

+0

@bowen你試過'find_all()'而不是'find()'嗎? – alecxe

+0

哎呀,對不起,我可以用google搜索它。耐心的人,我一定是浪費了你的時間。非常感謝! –

相關問題