python爬虫自动下载网页链接

需求分析

今天遇到一个简单的需求,需要下载澳大利亚电力市场NEM日前市场的发电商报价数据(http://nemweb.com.au/Reports/Current/Next_Day_Offer_Energy/),页面观感是这样的:

Ctrl + F 一下,看到一共有395个zip链接。于是就想着用python爬虫自动下载。这个网页很简单,没有验证码,甚至不需要登录,因此自动下载的python代码也很简单。

 

步骤

爬取链接主要是如下3步:

1. 第一步是爬取网页内容,保存在一个字符串content中

content的观感是这样的

从中可以看到链接是以'PUBLIC_NEXT_DAY_OFFER_ENERGY_(\d*)_(\d*).zip'的形式出现的,而且出现了两遍。

 

2. 第二步是构造正则表达式,从content中匹配下载链接

正则表达式构造为'(PUBLIC_NEXT_DAY_OFFER_ENERGY_(\d*)_(\d*).zip)',re.findall会返回一个三元tuple,分别是 (整个匹配到的字符串,第一个(\d*),第二个(\d*)). 由于

Python爬虫通过使用一些库,如`requests`和`beautifulsoup4`,可以自动下载网页文件。以下是一个简单的步骤: 1. **导入必要的库**:首先需要安装`requests`库来发送HTTP请求获取网页内容,以及`os`库来处理文件操作。 ```python import requests import os ``` 2. **发送GET请求**:使用`requests.get()`函数指定网页URL,并设置`stream=True`以便按需接收数据。 ```python url = 'http://example.com' response = requests.get(url, stream=True) ``` 3. **检查请求状态码**:确认请求是否成功,通常200表示成功。 ```python if response.status_code == 200: # 接下来的代码将被执行 else: print(f"请求失败,状态码:{response.status_code}") ``` 4. **保存文件**:使用`.content`属性获取网页内容,然后保存到本地文件,指定文件名。 ```python file_name = "example.html" with open(file_name, 'wb') as f: for chunk in response.iter_content(chunk_size=1024): if chunk: # filter out keep-alive new chunks f.write(chunk) ``` 5. **错误处理**:为了增强稳定性,可以添加异常处理,例如网络连接错误或文件已存在的情况。 完整的示例代码如下: ```python try: url = 'http://example.com' response = requests.get(url, stream=True) if response.status_code == 200: file_name = "example.html" with open(file_name, 'wb') as f: for chunk in response.iter_content(chunk_size=1024): f.write(chunk) print(f"{file_name} 已成功下载") else: print("下载失败") except requests.exceptions.RequestException as e: print(f"下载出错:{e}") ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值