首页 > 解决方案 > 从 Python 中的 HTML 页面中获取表格的前几行

问题描述

我正在通过 python 向该网站发出 GET 请求。

https://www.nhc.noaa.gov/gis/forecast/archive/?C=M;O=D

但是,它通过以下python代码下载了一个带有巨大表格的HTML页面

import requests
url = 'https://www.nhc.noaa.gov/gis/forecast/archive/?C=M;O=D'
r = requests.get(input_url_path)
url_list = r.text

这需要大量的时间和空间。

有没有办法下载此页面上表格的前 N ​​行?

标签: pythonweb-scrapingrequest

解决方案


使用流式传输,并设置您的块大小以获取您想要返回的任何数据。您可以遍历这些块,直到获得所需数量的链接。根据块的大小,它可能会增加一些,但它会让你非常接近。

import requests
import re

n_rows = 100
url = 'https://www.nhc.noaa.gov/gis/forecast/archive/?C=M;O=D'
r = requests.get(url, stream=True)

links = []
with requests.get(url, stream=True) as r:
    for chunk in r.iter_content(chunk_size=500000):
        links.extend(re.findall(r'href="([^?\/].*?)"',str(x)))
        if len(links) >= n_rows:
                     break

推荐阅读