我正在處理我自己的一個小項目,並嘗試將我的想法包圍在網絡報廢中。如何從Python中選擇性地從表中刪除數據2
我正在使用Python 2和BeautifulSoap模塊(但也嘗試了其他模塊,嘗試使用re模塊,其他模塊)。
簡而言之,鑑於網站:http://www.bankofcanada.ca/rates/exchange/daily-closing-past-five-day/我想收集有關每種貨幣匯率的信息,但代碼更靈活。
這是我的例子:
import urllib2
from bs4 import BeautifulSoup
import string
import re
myurl = 'http://www.bankofcanada.ca/rates/exchange/daily-closing-past-five-day/'
soup = BeautifulSoup(urllib2.urlopen(myurl).read(), "lxml")
dataTables = soup.find_all('td')
brandNewList = []
for x in dataTables:
text = x.get_text().strip()
brandNewList.append(text)
#print text
for index, item in enumerate(brandNewList):
if item == "U.S. dollar (close)":
for item in brandNewList[index:6]:
print item
它顯示:
$ python crawler.py
U.S. dollar (close)
1.4530
1.4557
1.4559
1.4490
1.4279
所以,你可以看到,我可以顯示,放棄了「TD」標籤對應於每個貨幣的數據;如果我將'th'與'td'標籤結合使用,我可以得到更具體的結果。 但是,如果我真的不想指定確切字符串「美元(關閉)」,如何使腳本模式適用於不同的網站? 例如,我想從終端輸入「美國」/「我們」作爲參數,並且該腳本將獨立返回與美元相對應的值,以瞭解不同網站上的列是如何命名的?
另外,我是一個Python的初學者,所以你可以,請告訴我更簡潔的方式重寫我的網絡爬蟲?感覺就像我用一種「愚蠢」的方式寫的,主要是:)
或者,冷靜,之前我沒有聽說EAFP;今天學到了一些新東西:),謝謝 –
或者,這很整潔 - 感謝這段代碼;現在,這看起來更像是一種獲取信息的python方式 –