希望有人可以通過webscrape幫助我。它在去年每天都工作得很好,在冬天關掉它,現在頁面上的東西發生了變化,它不再有效。 我需要爲列出的每個站點提取危險等級代碼。去年,BS尋找「tr」標籤,它的工作非常完美。我很難過。蟒蛇網刮失敗
下面是一個樣本區域的部位:http://bcwildfire.ca/hprScripts/DgrCls/index.asp?Region=4
這裏是我的代碼達至BS做它的事:
from urllib import urlopen
from HTMLParser import HTMLParser
import string, datetime, sys
from bs4 import BeautifulSoup
# Fire Danger ratings by station start at index 4
class HTMLCleaner(HTMLParser):
container = ""
def handle_data(self, data):
self.container = self.container + "," + data
return self.container
todayChk = datetime.date.today().strftime("%d-%b-%Y")
##FireRegions = {'Prince George': '4', 'Northwest': '3', 'Cariboo': '7', 'Kamloops': '5', 'Southeast': '6'}
FireRegions = {'Prince George': '4'}
Regs = FireRegions.keys()
Reg = 0
while Reg < len(FireRegions):
print Regs[Reg] + " Region"
content = urlopen('http://bcwildfire.ca/hprScripts/DgrCls/index.asp?Region='+FireRegions[Regs[Reg]]).read()
soup = BeautifulSoup(content, 'html.parser')
PGStats = soup.body.find_all("tr")
print PGStats
Reg+=1
感謝這麼多,如果你能提供一個解決方案。
*「頁面上的內容發生了變化」* - 您是否試圖弄清楚*什麼*? – jonrsharpe
我感覺像'FireRegions.keys()'中的reg行似乎比while循環後面跟着'FireRegions [Regs [Reg]]' –
更乾淨我對BS模塊不太瞭解。我花了幾個小時試圖到達我所需要的數據表,但沒有運氣。該頁面與去年幾乎一樣,看不到任何不同。 –