2017-02-06 63 views
0

我有一個網站來從中獲取信息。 例如,http://www.worldhospitaldirectory.com/alaska-native-medical-center/info/8500Python和Selenium:如何從沒有id,class的web文本中提取數據?

我需要提取信息並保存爲CSV文件。例如,

類別:綜合醫院
名稱:阿拉斯加原住民醫療中心
地址:4315外交驅動

電話:(907)563-2662
城市:安克雷奇
州:阿拉斯加

但現在的問題是我無法找到這些信息。 該網站的代碼如下:

<b>Category:</b> 
    General Hospitals 
<br> 
<b>Address:</b> 
    4315 Diplomacy Drive 
<br> 
<b>Subcontinent and Continent:</b> 
    North America, America 
<br> 

請給我一些建議或代碼,以幫助我獲得這些文字。

+0

你嘗試過這麼遠嗎?另外,快速瀏覽一下該網站後,它看起來像你想要抓取的數據位於'

' –

回答

0
import requests, bs4 

r = requests.get('http://www.worldhospitaldirectory.com/alaska-native-medical-center/info/8500') 
soup = bs4.BeautifulSoup(r.text, 'lxml') 
start = soup.find('em') 

for b in start.find_next_siblings('b'): 

     print(b.text, b.next_sibling.strip()) 

出來:

Category: General Hospitals 
Address: 4315 Diplomacy Drive 
Subcontinent and Continent: North America   , 
      America 
Country: United States 
Phone (907) 563-2662 
Website: 
City: 
State: 
Email: 
Latitude: 61.1827 
Longitude: -149.80009 
Zip Code: 99508 
Contact Address: 4315 Diplomacy Dr, Anchorage, AK 99508, United States 
Latitude in Degree, Minute, Second [Direction]: 61° 10' 57" N 
+0

請注意,這留下了城市和國家,這在原始網頁上可見。問題還要求返回姓名。 –

+1

是的,市和州沒有出現。這是非常令人困惑的 –

+1

@PeterCui:城市和州在'font'標籤內。如果b.text.startswith(('City:','State:'))或其他b.next_sibling.strip())將print打印到print(b.text,b.find_next('font')。 '。 –

相關問題