2016-07-22 35 views
1

我試圖廢棄一個網站已與表建成。這裏是一個頁面示例的鏈接:http://www.rc2.vd.ch/registres/hrcintapp-pub/companyReport.action?rcentId=5947621600000055031025&lang=FR&showHeader=false與美麗的廢料表格的HTML

我的目標是獲取名稱和姓氏:Lass Christian(截圖如下)。

enter image description here 我已經颳了很多網站,但這一個我絕對不知道如何着手。只有'表'沒有任何ID /類標籤,我無法弄清楚我應該從哪裏開始。

這裏是HTML代碼的爲例:

<table border="1" cellpadding="1" cellspacing="0" width="100%"> 
 
\t \t \t <tbody><tr bgcolor="#f0eef2"> 
 
\t \t \t \t 
 
\t \t \t \t <th colspan="3">Associés, gérants et personnes ayant qualité pour signer</th> 
 
\t \t \t </tr> 
 
\t \t \t <tr bgcolor="#f0eef2"> 
 
\t \t \t \t 
 
\t \t \t \t <th> 
 
\t \t \t \t \t <a class="hoverable" onclick="document.forms[0].rcentId.value='5947621600000055031025';document.forms[0].lang.value='FR';document.forms[0].searchLang.value='FR';document.forms[0].order.value='N';document.forms[0].rad.value='N';document.forms[0].goToAdm.value='true';document.forms[0].showHeader.value=false;document.forms[0].submit();event.returnValue=false; return false;"> 
 
\t \t \t \t \t \t Nom et Prénoms, Origine, Domicile, Part sociale 
 
\t \t \t \t \t </a> 
 
\t \t \t \t \t 
 
\t \t \t \t </th> 
 
\t \t \t \t <th> 
 
\t \t \t \t \t <a class="hoverable" onclick="document.forms[0].rcentId.value='5947621600000055031025';document.forms[0].lang.value='FR';document.forms[0].searchLang.value='FR';document.forms[0].order.value='F';document.forms[0].rad.value='N';document.forms[0].goToAdm.value='true';document.forms[0].showHeader.value=false;document.forms[0].submit();event.returnValue=false; return false;"> 
 
\t \t \t \t \t \t Fonctions 
 
\t \t \t \t \t </a> 
 
\t \t \t \t \t 
 
\t \t \t \t \t \t <img src="/registres/hrcintapp-pub/img/down_r.png" align="bottom" border="0" alt=""> 
 
\t \t \t \t \t 
 
\t \t \t \t </th> 
 
\t \t \t \t <th>Mode Signature</th> 
 
\t \t \t </tr> 
 
\t \t \t 
 
\t \t \t \t <tr bgcolor="#ffffff"> 
 
\t \t \t \t \t 
 
\t \t \t \t \t 
 
\t \t \t \t \t <td> 
 
\t \t \t \t \t \t <span style="text-decoration: none;"> 
 
\t \t \t \t \t \t \t Lass Christian, du Danemark, à Yverdon-les-Bains, avec 200 parts de CHF 100 
 
\t \t \t \t \t \t </span> 
 
\t \t \t \t \t </td> 
 
\t \t \t \t \t <td><span style="text-decoration: none;">associé gérant </span>&nbsp;</td> 
 
\t \t \t \t \t 
 
\t \t \t \t \t 
 
\t \t \t \t \t \t <td><span style="text-decoration: none;">signature individuelle</span>&nbsp;</td> \t \t \t \t \t 
 
\t \t \t \t \t 
 
\t \t \t \t \t 
 
\t \t \t \t </tr> 
 
\t \t \t 
 
\t \t \t 
 
\t \t \t 
 
\t \t \t 
 
\t \t </tbody></table>

+0

您只需要具有名稱的單行? –

+0

是的,我希望得到* Lass Christian *,但並非網站上的所有網頁都是一樣的,有時會有更多的表格。所以我想找出一種方法來獲得所有類型的頁面的名稱。 – jjyoh

回答

2

這將讓從頁面的名稱,該表與IDADM錨之後,一旦你有,你有多種方式來獲得你所需要的:

from bs4 import BeautifulSoup 
import requests 

r = requests.get('http://www.rc2.vd.ch/registres/hrcintapp-pub/companyReport.action?rcentId=5947621600000055031025&lang=FR&showHeader=false') 


soup = BeautifulSoup(r.content,"lxml") 
table = soup.select_one("#adm").find_next("table") 
name = table.select_one("td span[style^=text-decoration:]").text.split(",", 1)[0].strip() 
print(name) 

輸出:

Lass Christian 

或者:

table = soup.select_one("#adm").find_next("table") 
name = table.find("tr",bgcolor="#ffffff").td.span.text.split(",", 1)[0].strip() 
+1

謝謝!它完美的工作! – jjyoh

+0

沒有問題,不客氣。 –

+1

欣賞好的答案...增加了我的學習! – John

0

像這樣的事情?

results = soup.find_all("tr", {"bgcolor" : "#ffffff"}) 
for result in results: 
    the_name = result.td.span.get_text().split(',')[0] 
+0

好主意!但是我沒有得到第二部分:result.td.span.get_text()。split(',')[0]?它返回給我AttributeError:'NoneType'對象沒有屬性'get_text'。你怎麼看 ? – jjyoh

+0

這個想法是查看'td'元素,然後在包含的'span'元素中查找。那個錯誤意味着這棵樹沒有被找到爲'tr'元素之一。也許在那裏添加一個'print'語句來看看你是否找到它們中的任何一個。對不起,我現在不在一個地方,我可以測試它,但我會晚點。 – John