1
我想制定一些腳本,使用Python和BeautifulSoup在網頁上拾取一些文本,並將它們很好地放在一起。他們理想的結果是這樣的:(使用Python)將輸出放入2個列表中,並將兩個列表中的每個元素進行配對
Port_new_cape Jan 23, 2009 12:05
Brisbane July 24, 2002 03:12
Liaoning Aug 26, 2006 02:55
因爲網頁是在該公司的網站需要身份驗證和重定向,我的目標頁面的源代碼複製到一個文件並將其保存爲example.html
在C:\爲了方便。源代碼的
部分是引述如下(它們在目標段落,並有更多的相似段落):
<tr class="ghj">
<td><span class="city-sh"><sh src="./citys/1.jpg" alt="boy" title="boy" /></span><a href="./membercity.php?mode=view&u=12563">Port_new_cape</a></td>
<td class="position"><a href="./search.php?id=12563&sr=positions" title="Search positions">452</a></td>
<td class="details"><div>South</div></td>
<td>May 09, 1997</td>
<td>Jan 23, 2009 12:05 pm </td>
</tr>
<tr class="ghj">
<td><span class="city-sh"><sh src="./citys/1.jpg" alt="boy" title="boy" /></span><a href="./membercity.php?mode=view&u=12563">Brisbane</a></td>
<td class="position"><a href="./search.php?id=12563&sr=positions" title="Search positions">356</a></td>
<td class="details"><div>South</div></td>
<td>Jun 09, 1986</td>
<td>July 24, 2002 03:12 pm </td>
</tr>
<tr class="ghj">
<td><span class="city-sh"><sh src="./citys/1.jpg" alt="boy" title="boy" /></span><a href="./membercity.php?mode=view&u=12563">Liaoning</a></td>
<td class="position"><a href="./search.php?id=12563&sr=positions" title="Search positions">1105</a></td>
<td class="details"><div>Southeast</div></td>
<td>March 09, 2007</td>
<td>Aug 26, 2006 02:55 pm </td>
</tr>
到目前爲止,以下是我有什麼(在多虧了腳本的某些部分紳士的幫助):
from bs4 import BeautifulSoup
import re
import urllib2
url = r"C:\example.html"
page = open(url)
soup = BeautifulSoup(page.read())
#preparing the 1st list
cities = soup.find_all(href=re.compile("u="))
LST = []
for city in cities:
ci = city.renderContents()
full_list = LST.append(ci)
#preparing the 2nd list
Dates = soup.find_all('td', {'class' : 'info'})
LSTTT = []
counter = 0
while len(Dates) > counter:
datesGroup = Dates[counter].find_next_siblings('td')
if len(datesGroup) == 2:
ti = datesGroup[1].renderContents()
full_list_2 = LSTTT.append(ti)
counter += 1
print full_list
print full_list_2
我的想法是把所有的輸出入2所列出,然後再結合各要素(他們要在2所列出通訊員一對一)。但是,當我運行腳本時,它會生成2個「無」列表。
我的問題:
- 出了什麼問題的列表?爲什麼他們是「無」?
- 如何結合2個列表中的每個元素,一旦它們成功?
非常感謝。
thefourtheye,這是不可思議的!謝謝。因爲我需要單獨存儲結果。有沒有一種方法不使用元組,而是成對打印而不是寫:print LST [1] + LSTTT [0] ... print LST [-1] + LSTTT [-1]? –
@MarkK你可以迭代數據,就像我在答案中顯示的一樣。請檢查。 :) – thefourtheye
再次感謝,thefourtheye。你是一位大師。 –