2017-07-29 84 views
0

picture1如何使用Python

我想匹配的每個市/縣的郵政編碼和經度和緯度相同的標籤中選擇第n行,所以我只需要:

紐約
40.748/-73.997

這樣。

zip_code_NY = soup.find(class_="restable") 
ref_raw_1 = [pt.get_text() for pt in zip_code_NY.select("a small")] 
city_name = [city.get_text() for city in zip_code_NY.select("tr td")] 
name_NY = pd.DataFrame(city_name) 
print(name_NY) 

這就是我所能做的,這是我的輸出...

picture2

感謝您的幫助!

+0

那麼究竟是什麼遺漏?您打印的最後一行是否錯誤(所有內容都在一行中)?我們應該忽略打印的0和1嗎?當你說第n行時,你的例子中的哪一行? – user7733611

+0

@ user7733611嗨,先謝謝你。我只想要「紐約」和「10001」,但正如你從第一張照片中看到的,它們都在同一個標​​簽下,所以我不知道如何選擇。 – lilyyyyyyyyy

回答

1

要獲得1個元素,可以使用python list slicing。例如,要選擇國家,您應該這樣做:

首先,選擇正確的表格。我無法知道圖像中的父元素是什麼,但我們會認爲它是html中的第一個表格。然後假設該國始終是該表中第一行的第三個元素:

soup.find_all('tr')[0].contents[2] 
+0

謝謝,這工作!我還使用[2 :: 9]每9行獲取第二行。 – lilyyyyyyyyy