Python Web Scraping and Pandas Dataframe



我对Python相对较新,对网络抓取也完全陌生,但我正在尝试从这个网站收集数据:

https://www.usclimatedata.com/climate/cumming/georgia/united-states/usga1415

我想从 1 月至 12 月的表格中获取信息并将其放入 Pandas 数据框中并将其打印回用户。我计划用数据做更多的事情,比如计算我自己的平均值和平均值/中位数等,但我最初正在努力获取数据。任何帮助将不胜感激!!

如果你从文件中获取数据,你可以使用(x=pd.read_csv或者把你使用的文件扩展名而不是csv(和print(x(

首先检查机器人中的网站服务条款.txt检查抓取网页是否合法。

如果是,那么您可以使用bs4BeautifulSoup包来抓取网页。

def get_state_holiday_data(self, year: int, state_name: str) -> pd.DataFrame:
try:
pagecontent = self.get_page_content(year, state_name)
holiday_table_list = []
for table in pagecontent.findAll("table"):
for tbody in table.findAll("tbody"):
for row in tbody.findAll("tr"):
holiday_row_list = []
if len(row.findAll("td")) == 3:
for cell_data in row.findAll("td"):
holiday_row_list.append(cell_data.find(text=True).replace('n', '').strip(' '))
holiday_table_list.append(holiday_row_list)
break
state_holiday_df = pd.DataFrame.from_records(holiday_table_list, columns=['Date', 'Day', 'Holiday'])
state_holiday_df['Date'] = state_holiday_df['Date'].apply(
lambda date: str(year) + '-' + datetime.strptime(date, '%d %b').strftime('%m-%d'))
del state_holiday_df['Day']
return state_holiday_df
except Exception as e:
raise e

以上是抓取表并将其转换为数据帧的示例代码,其中表和正文是 html元素 id/name。

最新更新