Привет всем, я хочу получить фактические дневные температуры от www.wunderground.com и время от времени сталкивался с ошибкой NoneType. Например, , ниже приведен фрагмент кода, который пытается измерить температуру с 1 марта по 5 марта 2020 года. Бывают случаи, когда я могу получить результаты за первые пару дней, но есть также В тех случаях, когда код ломался на этапе получения сводной таблицы , , т.е. , он не мог найти таблицу с атрибутом класса "ng-star-вставлен".
from bs4 import BeautifulSoup
from selenium import webdriver
import time
driver = webdriver.Chrome()
df = {'date':[], 'daily average temperature':[]}
while day <= 5:
daily_weather_url = "https://www.wunderground.com/history/daily/KBOS/date/2020-3-" + str(day)
driver.get(daily_weather_url)
content = driver.page_source
soup = BeautifulSoup(content, 'lxml')
summary_table = soup.find("table", attrs={"class": "ng-star-inserted"})
summary_table_rows=summary_table.find_all("tr")
average_temp=summary_table_rows[3].find_all("td")[0].text.strip()
df['date'].append("2020-3-"+str(day))
df['daily average temperature'].append(average_temp)
day += 1
time.sleep(30)
driver.close()
df = pd.DataFrame(df)
print(df)
Интересно, вызвано ли это тем, что сервер wunderground.com является оборонительным и не позволяет пользователям ломиться. Но его robots.txt, кажется, предполагает, что очистка в порядке с задержкой сканирования 10 se c. Как я могу устранить эту ошибку? Любые идеи будут оценены.