python批量爬取网页图片的初步实现

本文分享了使用Python网络爬虫技术爬取网页图片的实践过程,包括获取HTML、提取图片链接及保存图片到本地的方法。通过具体案例,详细介绍了如何处理常见错误并优化代码。

最近本人正在学习python网络爬虫,尝试实现爬取网页图片,通过对网上一些相关博客的学习,目前初步实现,分享一下实现代码。

爬取图片的目标网页是https://findicons.com/pack/2787/beautiful_flat_icons
在这里插入图片描述

1. 获取html

import requests 
import urllib.request
import re

html = requests.get('https://findicons.com/pack/2787/beautiful_flat_icons')
encoding = html.apparent_encoding #获取该页面的字符集编码类型
html.encoding = encoding #使用该编码类型来对页面编码
text = html.text

2. 从html内容中提取图片链接

text_splited = re.split(r'\s+',text) #将html内容按空格分割为一个列表
target = []
target_index = []

for i in text_splited:
    if(re.match(r'src',i)):
        if(re.match(r'.*?png',i)):
            target.append
### Python 批量爬取大学官网 为了实现批量爬取中国各所大学官方网站的任务,可以基于已有的技术栈来构建解决方案。此过程涉及网络请求发送、HTML 解析以及数据存储等多个环节。 #### 准备工作 在开始编写代码之前,需先安装必要的库: ```bash pip install requests beautifulsoup4 pandas openpyxl ``` #### 导入所需模块并定义辅助函数 ```python import time import requests from bs4 import BeautifulSoup import pandas as pd import re ``` #### 获取高校列表页面内容 考虑到已有资料提及过获取全国高校名单的方法[^2],这里可以直接利用该部分成果作为入口点之一。假设已经有一个包含所有学校链接的 Excel 文件 `universities.xlsx` 存在于当前目录下,则可以从这个文件读取每所学校对应的 URL 地址。 #### 定义爬虫主体逻辑 下面是一个完整的脚本用于遍历给定的Excel表格内的每一行记录,并尝试访问其中指定的目标网站主页地址,最终将结果保存回同一张表内新增的一列中。 ```python def fetch_university_websites(input_file="universities.xlsx", output_file="output_with_website.xlsx"): # 加载输入的数据集 df = pd.read_excel(input_file) websites = [] for index, row in df.iterrows(): try: url = row['url'] # 假设原始数据集中有一列为 'url' 表示学校的官方网址 response = requests.get(url) if response.status_code == 200: soup = BeautifulSoup(response.text, 'html.parser') # 这里可以根据实际情况调整选择器以适应不同站点结构 official_site_tag = soup.select_one('a[href*="//www."]') or \ soup.find('meta', property='og:url')['content'] website = official_site_tag.get('href').strip() if isinstance(official_site_tag, Tag) else None print(f"{row['name']} 的官网可能是 {website}") websites.append({'name': row['name'], 'official_website': website}) time.sleep(1) # 设置适当延时避免频繁请求引起服务器反感 except Exception as e: print(f"Error occurred while processing {row['name']}: ", str(e)) continue result_df = pd.DataFrame.from_records(websites) combined_df = pd.merge(df, result_df, on=['name']) combined_df.to_excel(output_file, index=False) if __name__ == "__main__": fetch_university_websites() ``` 上述代码片段展示了如何从预存有各大院校基本信息(含URL字段)的Excel文档出发,逐条发起HTTP GET 请求至相应位置,并借助BeautifulSoup 对返回的内容做初步筛选从而定位到可能存在的正式门户链接;最后再把这些信息汇总起来形成新的输出文件。 需要注意的是,在实际操作过程中应当尊重各个教育机构的服务条款,合理控制并发度与频率以免造成不必要的负担甚至被封禁IP等问题发生。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值