2017-12-18 30 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)があります。パイソン、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はあなたがChromeでページ(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タグと属性は大文字と小文字は区別されませんので、すべての3つのHTMLパーサ変換タグ属性名は小文字のになります。つまり、マーク<TAG></TAG><tag></tag>に変換されます。

+0

私は「テーブル」を「テーブル」に変更しました。最後に美しいスープが有効な情報を返します。しかし、別の問題があるようです。美しいスープは30の最初の要素を返します。何が問題なのか考えていますか? –

+0

@bowen 'find()'の代わりに 'find_all()'を試してみましたか? – alecxe

+0

おっと、すみません、私はそれをgoogleしていた可能性があります。私はあなたの時間を無駄にしたに違いない。 –

関連する問題