创建网站制作仪表企业,百度快速排名,鲜花网站模版,怎么添加网站白名单目录 项目背景一、项目准备环境配置 二、爬虫设计与实现爬虫设计思路目标网站分析数据获取流程 代码实现1. 初始化爬虫类#xff08;BingImageSpider#xff09;2. 创建存储文件夹3. 获取图像链接4. 下载图片5. 使用Proxy302代理IP6. 主运行函数 运行截图 三、总结 项目背景 … 目录 项目背景一、项目准备环境配置 二、爬虫设计与实现爬虫设计思路目标网站分析数据获取流程 代码实现1. 初始化爬虫类BingImageSpider2. 创建存储文件夹3. 获取图像链接4. 下载图片5. 使用Proxy302代理IP6. 主运行函数 运行截图 三、总结 项目背景
本篇博客详细介绍了一个网络爬虫项目的准备和实现过程。该项目的目标是从Bing图片搜索中获取图片链接并下载图片。此类爬虫项目通常用于收集大量的图片数据以便用于训练各种人工智能模型特别是计算机视觉模型。计算机视觉领域的研究需要大量的图像数据来训练和测试模型以便实现图像分类、对象检测、图像生成等功能。
一、项目准备
环境配置
在开始编写爬虫之前确保已经完成以下环境配置
1.Python安装: 确保已安装Python 3.x版本。Python是一种功能强大且易于学习的编程语言适合于各种编程任务包括网络爬虫开发。
2.需要的库: Python拥有庞大的第三方库生态系统我们将使用几个核心库来开发爬虫
requests: 用于发送HTTP请求和处理响应。os: 提供了与操作系统交互的功能用于创建文件夹等文件操作。time: 提供了时间相关的功能例如休眠程序以及计时等。urllib: 提供了在网络上获取数据的一些功能主要用于URL编码。
可以使用以下命令通过pip安装这些库
pip install requests如果你使用的是Anaconda等集成环境可以使用conda命令
conda install requests这些库将帮助我们处理HTTP请求、解析和存储数据以及进行一些基本的系统操作。
二、爬虫设计与实现
爬虫设计思路
目标网站分析
在设计爬虫之前分析目标网站是必不可少的。对于Bing图片搜索网站我们进行如下分析
网页结构Bing图片搜索页面的结果通常以HTML的形式呈现其中包含了多个图片的缩略图。每张图片的缩略图通常通过img标签展示图片的真实链接保存在src属性中。动态加载Bing的图片搜索结果可能采用了动态加载的方式。即在页面初始加载时可能只加载部分图片更多图片会在用户滚动页面时动态加载。Selenium可以模拟用户行为如滚动以加载这些动态内容。请求限制Bing图片搜索可能对请求频率或IP地址进行限制。使用代理服务器有助于分散请求负载避免IP被封禁。
数据获取流程
构建请求URL根据用户输入的搜索关键词构建Bing图片搜索的URL。URL的格式通常为https://www.bing.com/images/search?q{搜索词}其中{搜索词}是用户的查询内容。 发送GET请求通过Selenium WebDriver发送GET请求加载目标网页。由于Bing图片搜索页面可能含有动态内容Selenium能够处理这些动态加载的内容确保图片链接完全加载。 解析网页数据使用Selenium解析网页源代码提取所有图片缩略图的src属性。通常缩略图链接可以通过CSS选择器找到例如使用img.mimg选择器获取图片标签。 下载图片对于每个提取到的图片链接使用Requests库发送GET请求以获取图片数据并将其保存到本地目录。确保在保存时处理任何可能的下载异常如网络问题或链接无效等。 存储管理将下载的图片保存到预先创建的目录中目录结构可按搜索词分类方便后续管理和使用。
代码实现
以下是代码的主要部分及其功能说明
1. 初始化爬虫类BingImageSpider
在爬虫开发过程中首先需要定义一个爬虫类以实现图片的爬取功能。我们定义了一个名为BingImageSpider的类用于处理从Bing图片搜索页面抓取和下载图片的任务。
import requests
import os
import time
from urllib import parseclass BingImageSpider(object):def __init__(self):self.url https://www.bing.com/images/search?q{}formHDRSC2first1tscImageBasicHoverself.directory rD:\价值一个亿\python-mini-projects\projects\bingimg\{}self.header {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3,Accept-Language: en-US,en;q0.9,Referer: https://www.bing.com}2. 创建存储文件夹
在图片爬取的过程中为了组织和管理下载的图片需要创建一个专门的存储文件夹。这个文件夹的名称通常与搜索关键词相关以便于后续查找和管理。以下是创建存储图片文件夹的代码
def create_directory(self, name):self.directory self.directory.format(name)if not os.path.exists(self.directory):os.makedirs(self.directory)3. 获取图像链接
该方法通过发送HTTP请求获取网页内容并从Bing图片搜索结果页面获取图片的缩略图链接
def get_image_link(self, url):list_image_link []response requests.get(url, headersself.header)# 解析网页内容并提取图片链接try:json_data response.json()for item in json_data[value]:if thumbnailUrl in item:list_image_link.append(item[thumbnailUrl])except Exception as e:print(fError occurred: {e})return list_image_link返回一个包含所有提取到的图片缩略图链接的列表用于后续的图片下载操作。
4. 下载图片
此段代码的主要任务是下载指定的图片并将其保存到本地存储。实现这一功能需要处理网络请求、文件操作以及错误处理等多个方面。下面是该方法的实现代码
def save_image(self, img_link, filename):try:res requests.get(img_link, headersself.header)with open(filename, wb) as f:f.write(res.content)print(存储路径 filename)except requests.RequestException as e:print(fError downloading image: {e})下载图片该方法接受两个参数img_link 和 filename。img_link 是要下载的图片的URL链接filename 是保存图片的本地文件路径。方法通过HTTP请求下载图片数据并将其写入到指定的文件中。文件存储下载的图片以二进制模式“wb”写入到本地文件系统中确保图片数据被正确保存。 通过这种方法可以确保从网络上下载的图片被正确存储在本地以便于后续的使用和管理。
5. 使用Proxy302代理IP
在网络爬虫中频繁的请求可能会被目标网站识别为异常流量导致IP地址被封禁。为降低此风险可以使用Proxy302等代理IP服务。Proxy302与302.AI是同一个开发团队302.AI是一个汇集全球顶级品牌的AI超市按需付费无月费全面开放使用各种类型AI。Proxy302跟302.AI的账号余额是通用的。
首先我们来到 proxy302.com 官网注册账号选择自己所需要的代理ip 定义一个变量 proxy包含了你要使用的代理服务器的地址和端口号。在这个例子中代理服务器的地址是 proxy.proxy302.com端口号是 2222。
# 配置代理设置
proxy proxy.proxy302.com:2222 # 代理地址:端口创建一个 Options 对象这是Selenium提供的一个配置类用于设置Chrome浏览器的各种选项。
chrome_options Options()chrome_options.add_argument(f--proxy-serverhttp://{proxy})通过 add_argument 方法将一个新的命令行参数添加到Chrome浏览器的启动选项中。这行代码添加了 --proxy-server 参数指定了要使用的代理服务器。http://{proxy} 表示使用 http 协议连接到代理服务器{proxy} 是上面定义的代理地址和端口。最终这个参数告诉Chrome浏览器所有的网络请求都要通过这个指定的代理服务器进行。 在选择代理服务时可靠性和灵活性是至关重要的考虑因素。Proxy302凭借其全面的代理类型、多样的支持协议以及灵活的定价模式成为了众多用户的首选。这些优势不仅确保了高效的数据采集还为不同场景的应用提供了极大的便利。
最全面代理类型Proxy302提供市面上最全面的代理类型满足各种业务需求。
全球240国家和地区6500万个住宅IP可供选择。Proxy302支持HTTP、SOCKS5网络协议的代理。Proxy302支持动态、静态代理代理类型分为【动态按流量扣费】、【动态按IP扣费】、【静态按流量扣费】、【静态按IP扣费】静态代理还分为住宅IP、数据中心IP。
简洁易用用户界面简洁而不简单易用且高效。提供浏览器扩展插件实现一键设置代理省去复杂配置步骤。 按需付费无月付套餐无需套餐捆绑购买按需付费充值即可使用所有类型的代理IP无阶梯式定价。
使用代理ip 这种方式能够有效地隐藏真实IP地址从而规避被封禁的风险。
6. 主运行函数
run函数是程序的入口点负责控制整个爬虫的执行流程。它依次处理用户输入、构建请求URL、提取图片链接、下载图片并进行适当的延时以防止过于频繁的请求。以下是run函数的具体代码
def run(self):searchName input(查询内容)self.create_directory(searchName)search_url self.url.format(parse.quote(searchName))image_links self.get_image_link(search_url)for index, link in enumerate(image_links):self.save_image(link, os.path.join(self.directory, f{index 1}.jpg))time.sleep(1) # 防止请求过于频繁通过这些方法爬虫能够高效地从Bing图片搜索中获取并下载相关图片实现自动化的图像数据收集。
运行截图 三、总结
本文档介绍了如何通过Python实现一个简单的Bing图片爬虫并解释了各部分代码的功能与逻辑。同时为了规避频繁请求可能带来的IP封禁风险我们还介绍了如何在爬虫中使用Proxy302代理IP服务。通过这个项目大家可以轻松获取大量的图片数据用于训练计算机视觉模型或其他用途。 文章转载自: http://www.morning.fhsgw.cn.gov.cn.fhsgw.cn http://www.morning.lmzpk.cn.gov.cn.lmzpk.cn http://www.morning.gpnwq.cn.gov.cn.gpnwq.cn http://www.morning.yrmpz.cn.gov.cn.yrmpz.cn http://www.morning.tsflw.cn.gov.cn.tsflw.cn http://www.morning.jrlxz.cn.gov.cn.jrlxz.cn http://www.morning.lwbhw.cn.gov.cn.lwbhw.cn http://www.morning.sqyjh.cn.gov.cn.sqyjh.cn http://www.morning.rzrbw.cn.gov.cn.rzrbw.cn http://www.morning.xgmf.cn.gov.cn.xgmf.cn http://www.morning.rwmq.cn.gov.cn.rwmq.cn http://www.morning.krjrb.cn.gov.cn.krjrb.cn http://www.morning.mrkbz.cn.gov.cn.mrkbz.cn http://www.morning.fslxc.cn.gov.cn.fslxc.cn http://www.morning.skkln.cn.gov.cn.skkln.cn http://www.morning.wzdjl.cn.gov.cn.wzdjl.cn http://www.morning.fgrkc.cn.gov.cn.fgrkc.cn http://www.morning.rjqtq.cn.gov.cn.rjqtq.cn http://www.morning.dsgdt.cn.gov.cn.dsgdt.cn http://www.morning.ljngm.cn.gov.cn.ljngm.cn http://www.morning.yrqb.cn.gov.cn.yrqb.cn http://www.morning.zzhqs.cn.gov.cn.zzhqs.cn http://www.morning.hwbmn.cn.gov.cn.hwbmn.cn http://www.morning.nfbkp.cn.gov.cn.nfbkp.cn http://www.morning.dhrbj.cn.gov.cn.dhrbj.cn http://www.morning.egmux.cn.gov.cn.egmux.cn http://www.morning.lcqrf.cn.gov.cn.lcqrf.cn http://www.morning.lpzyq.cn.gov.cn.lpzyq.cn http://www.morning.fgxnb.cn.gov.cn.fgxnb.cn http://www.morning.tymnr.cn.gov.cn.tymnr.cn http://www.morning.dnbhd.cn.gov.cn.dnbhd.cn http://www.morning.brwnd.cn.gov.cn.brwnd.cn http://www.morning.mlckd.cn.gov.cn.mlckd.cn http://www.morning.jtqxs.cn.gov.cn.jtqxs.cn http://www.morning.fwcjy.cn.gov.cn.fwcjy.cn http://www.morning.kaakyy.com.gov.cn.kaakyy.com http://www.morning.rdlfk.cn.gov.cn.rdlfk.cn http://www.morning.jrpmf.cn.gov.cn.jrpmf.cn http://www.morning.nypsz.cn.gov.cn.nypsz.cn http://www.morning.gtnyq.cn.gov.cn.gtnyq.cn http://www.morning.spfh.cn.gov.cn.spfh.cn http://www.morning.zmpsl.cn.gov.cn.zmpsl.cn http://www.morning.xinxianzhi005.com.gov.cn.xinxianzhi005.com http://www.morning.0dirty.cn.gov.cn.0dirty.cn http://www.morning.tdmr.cn.gov.cn.tdmr.cn http://www.morning.frsxt.cn.gov.cn.frsxt.cn http://www.morning.rqwwm.cn.gov.cn.rqwwm.cn http://www.morning.bgdk.cn.gov.cn.bgdk.cn http://www.morning.psxxp.cn.gov.cn.psxxp.cn http://www.morning.rwzqn.cn.gov.cn.rwzqn.cn http://www.morning.mjbnp.cn.gov.cn.mjbnp.cn http://www.morning.yxyyp.cn.gov.cn.yxyyp.cn http://www.morning.fbqr.cn.gov.cn.fbqr.cn http://www.morning.rshkh.cn.gov.cn.rshkh.cn http://www.morning.fqklt.cn.gov.cn.fqklt.cn http://www.morning.hfyll.cn.gov.cn.hfyll.cn http://www.morning.bfcrp.cn.gov.cn.bfcrp.cn http://www.morning.pjftk.cn.gov.cn.pjftk.cn http://www.morning.dbjyb.cn.gov.cn.dbjyb.cn http://www.morning.ryspp.cn.gov.cn.ryspp.cn http://www.morning.qnhpq.cn.gov.cn.qnhpq.cn http://www.morning.klzdy.cn.gov.cn.klzdy.cn http://www.morning.sdamsm.com.gov.cn.sdamsm.com http://www.morning.qmbpy.cn.gov.cn.qmbpy.cn http://www.morning.ns3nt8.cn.gov.cn.ns3nt8.cn http://www.morning.kdpal.cn.gov.cn.kdpal.cn http://www.morning.wmdbn.cn.gov.cn.wmdbn.cn http://www.morning.tmcmj.cn.gov.cn.tmcmj.cn http://www.morning.yxlpj.cn.gov.cn.yxlpj.cn http://www.morning.stprd.cn.gov.cn.stprd.cn http://www.morning.hrpmt.cn.gov.cn.hrpmt.cn http://www.morning.ckwrn.cn.gov.cn.ckwrn.cn http://www.morning.ndmh.cn.gov.cn.ndmh.cn http://www.morning.kbdrq.cn.gov.cn.kbdrq.cn http://www.morning.nqgds.cn.gov.cn.nqgds.cn http://www.morning.gqtw.cn.gov.cn.gqtw.cn http://www.morning.qbgff.cn.gov.cn.qbgff.cn http://www.morning.sqnxk.cn.gov.cn.sqnxk.cn http://www.morning.tmtrl.cn.gov.cn.tmtrl.cn http://www.morning.nsrlb.cn.gov.cn.nsrlb.cn