网页表格抓取(rainfall:有什么方法可以让我在上面得到我想要的数据帧吗)

优采云 发布时间: 2021-11-17 11:01

  网页表格抓取(rainfall:有什么方法可以让我在上面得到我想要的数据帧吗)

  我想从嵌套的 URL 链接中抓取和解析表,并创建一个 Pandas 数据框并将其导出。我想出了如何抓取页面是否有表格,然后从 HTML 页面中删除表格,但现在我需要从父链接中的子链接抓取并解析表格,我想我需要循环通过所有子链接解析它的表,我很感兴趣。我想知道是否有任何有效的方法可以制作这个BeautifulSoup。谁能告诉我如何做到这一点?

  我的尝试

  这是我目前从 HTML 页面抓取和解析单个表的尝试,但我不知道如何从嵌套的 HTML 页面中抓取和解析具有唯一表名的表,并在最后创建一个 Pandas 数据框.

  def scrape_table(url):

response = requests.get(url, timeout=10)

bs= BeautifulSoup(response.content, 'html.parser')

table = bs.find('table')

list_of_rows = []

for row in table.findAll('tr'):

list_of_cells =[]

for cell in row.findAll('td'):

text = cell.text

list_of_cells.append(text)

list_of_rows.append(list_of_cells)

x= list_of_rows[1:]

df = pd.DataFrame(x, index=None)

df.to_csv("output.csv")

  但这就是我想要做的:

  main_entry_html = "http://www.bom.gov.au/climate/current/statement_archives.shtml"

child_url_1= "http://www.bom.gov.au/climate/current/month/aus/archive/202001.summary.shtml"

child_url_2 = "http://www.bom.gov.au/climate/current/month/aus/archive/202002.summary.shtml"

child_url_2 = "http://www.bom.gov.au/climate/current/month/aus/archive/202003.summary.shtml"

...

  以此类推,我需要访问 2015-01 到 2020-07 的所有月度汇总链接,以及标题为 Area-averagerain 的陡峭和分析表,最后创建一个数据框作为我想要的输出。

  我想我可以使用for循环遍历每个子URL链接(即月份摘要链接),然后通过查看其表名来解析我想要的表。我不确定如何在 python 中实现这一点?谁能告诉我如何做到这一点?有什么可能的想法吗?

  预期输出

  下面是我想从所有子 URL 链接中抓取和解析所有表的数据框。以下是具有虚拟值的示例数据框:

  

  有什么办法可以获得我想要的数据框吗?如何从嵌套的 url-link 中抓取和解析表?谁能给我一些可能的想法并告诉我如何实现预期的输出?谢谢

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线