[英]Fetch first few rows of a table from a HTML page in Python
我正在通过 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 行?
使用流式传输,并设置您的块大小以获取您想要返回的任何数据。 您可以遍历这些块,直到获得所需数量的链接。 根据块的大小,它可能会 go 超过一些,但它会让你非常接近。
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.