易语言开发从入门到精通:进阶篇·网络爬虫与数据采集分析系统深度实战·HTTP访问对象/Python接口/HTML解析/XPath正则/CSV/JSON导出·SQLite/MySQL本地/云端存储·gdip可视化·电商竞品分析/新闻舆情监控·综合网络爬虫工具·性能与反爬虫优化 🕷️📊🌐
1.47.1 学习目标 🎯
作为《易语言开发从入门到精通》的进阶篇·从系统级/自动化/图形图像/游戏转向互联网综合能力·电商/新闻/教育等领域最高频刚需·创业/职场人士/学生必备技能 ,本章将帮你构建完整的网络爬虫与数据采集分析思维体系,掌握核心爬虫技术与工具,完成2个高实用价值的联合项目,掌握性能与反爬虫优化,达成以下5重可落地的明确目标:
- 构建网络爬虫与数据采集分析系统的四层标准化开发模式:掌握"准备层→需求分析层→技术选型层→代码实现层→测试调试与反爬虫优化层"的五层标准化开发模式,解决90%以上的个人/企业日常互联网数据采集分析需求;
- 掌握核心网络爬虫与数据采集分析技术 :
- 基础网络请求技术:精通常用的HTTP访问对象(GET/POST请求·精易模块提供·免费)、Python接口(调用Requests/BeautifulSoup/Scrapy·付费/免费插件·精易论坛提供)、腾讯云COS/阿里云OSS/华为云OBS云存储(调用API·免费/付费);
- HTML解析与数据提取技术:XPath解析(精易模块XPath解析器·免费)、正则表达式解析(精易模块正则表达式·免费)、JSON解析(json支持库·免费);
- 数据导出与可视化技术:CSV/Excel/PDF/JSON导出(精易模块CSV/Excel/PDF/JSON助手·免费)、SQLite/MySQL本地/云端存储(eSQLite/eMySQL支持库·免费)、gdip可视化(绘制折线图/柱状图/饼图/雷达图·免费);
- 性能与反爬虫优化技术:IP代理池(调用腾讯云/阿里云/华为云API·免费/付费)、User-Agent池(自动随机切换·精易模块提供·免费)、Cookie池(自动登录保存Cookie·精易模块提供·免费)、验证码识别(百度OCR/阿里云OCR/腾讯云OCR·免费/付费)、请求间隔控制(精易模块定时器·免费)、异步请求(精易模块线程池·免费);
- 开发2个高实用价值的联合项目 :
- 电商平台竞品价格监控系统:支持监控京东/淘宝/拼多多/抖音商城/快手小店的竞品价格、库存、销量、评价关键词、好评率/差评率,设置价格预警、库存预警,导出CSV/Excel/PDF/JSON格式的监控报告,发送到指定邮箱/微信/企业微信;
- 新闻舆情监控系统:支持监控新浪/腾讯/网易/搜狐/今日头条/抖音/快手的指定关键词新闻舆情,设置关键词预警、情感分析预警(正面/负面/中性),导出CSV/Excel/PDF/JSON格式的监控报告,发送到指定邮箱/微信/企业微信;
- 掌握网络爬虫与数据采集分析系统的工具与方法 :
- 网络请求与HTML解析工具:Chrome/Firefox/Edge浏览器开发者工具(抓包/分析HTML结构/XPath·免费)、Wireshark/Charles网络抓包(免费/付费)、Postman API测试(免费/付费);
- 数据导出与可视化工具:Microsoft Excel/Power BI制作监控报告·免费/付费、Canva制作监控报告·免费/付费、GIMP制作监控报告·免费;
- 反爬虫优化工具:IP代理池(调用腾讯云/阿里云/华为云API·免费/付费)、Cookie池(自动登录保存Cookie·精易模块提供·免费)、验证码识别(百度OCR/阿里云OCR/腾讯云OCR·免费/付费);
- 掌握性能与稳定性优化:大文件(≥10MB)使用分块处理(每块1MB)、多个文件使用异步调用(多线程·精易模块线程池)、数据缓存机制(使用SQLite/eMySQL支持库存储爬取过的数据)、try-catch+自动重试+日志记录(精易模块提供·免费);
1.47.2 网络爬虫与数据采集分析系统的核心思维框架------五层标准化开发模式 🧠
网络爬虫与数据采集分析系统的本质是**"通过网络请求工具获取目标网站的HTML/JSON数据,使用解析工具提取有价值的数据,使用导出工具保存到本地/云端,使用可视化工具展示数据,通过性能与反爬虫优化工具提高系统效率与稳定性"**,五层标准化开发模式可以帮助你构建"高效、稳定、易用、可扩展、合规"的网络爬虫与数据采集分析系统。
1.47.2.1 第一层:准备层
✅ 功能 :准备网络爬虫与数据采集分析系统所需的支持库、模块、工具、资源;
✅ 常用工具与资源:
- 支持库:spec(系统核心·必须安装)、json(JSON解析·必须安装)、eSQLite(SQLite本地存储·必须安装)、eMySQL(MySQL云端存储·可选)、gdip(GDIPlus可视化·必须安装)、iext(扩展界面·必须安装)、shell(系统操作·必须安装);
- 模块 :
- 网络请求模块:精易模块HTTP访问对象(GET/POST请求·免费)、精易模块网络爬虫(调用Requests/BeautifulSoup/Scrapy·付费/免费插件·精易论坛提供)、精易模块腾讯云COS/阿里云OSS/华为云OBS云存储(调用API·免费/付费);
- HTML解析与数据提取模块:精易模块XPath解析器(免费)、精易模块正则表达式(免费)、精易模块JSON解析器(免费);
- 数据导出与可视化模块:精易模块CSV/Excel/PDF/JSON助手(免费)、精易模块SQLite/MySQL助手(免费)、精易模块gdip可视化(免费);
- 反爬虫优化模块:精易模块IP代理池(调用腾讯云/阿里云/华为云API·免费/付费)、精易模块User-Agent池(自动随机切换·免费)、精易模块Cookie池(自动登录保存Cookie·免费)、精易模块验证码识别(调用百度OCR/阿里云OCR/腾讯云OCR·免费/付费);
- 性能与稳定性优化模块:精易模块定时器(请求间隔控制·免费)、精易模块线程池(异步请求·免费)、精易模块try-catch(错误处理·免费)、精易模块日志记录器(免费)、精易模块自动重试(3次以内·免费);
- 辅助工具 :
- 网络请求与HTML解析工具:Chrome/Firefox/Edge浏览器开发者工具(抓包/分析HTML结构/XPath·免费)、Wireshark/Charles网络抓包(免费/付费)、Postman API测试(免费/付费);
- 数据导出与可视化工具:Microsoft Excel/Power BI制作监控报告·免费/付费、Canva制作监控报告·免费/付费、GIMP制作监控报告·免费;
- 反爬虫优化工具:IP代理池(调用腾讯云/阿里云/华为云API·免费/付费)、Cookie池(自动登录保存Cookie·精易模块提供·免费)、验证码识别(百度OCR/阿里云OCR/腾讯云OCR·免费/付费);
- 资源 :
- 免费API:百度OCR/阿里云OCR/腾讯云OCR·免费试用、腾讯云COS/阿里云OSS/华为云OBS·免费试用、新浪/腾讯/网易/搜狐/今日头条/抖音/快手API·免费/付费;
- 免费Python接口:精易论坛提供的Requests/BeautifulSoup/Scrapy插件·免费;
- 免费监控报告模板 :Canva提供的电商/新闻监控报告模板·免费;
✅ 注意事项:
- 网络爬虫与数据采集分析系统必须遵守版权法律法规(不要采集/存储/传输个人敏感信息·如身份证号/银行卡号/手机号);
- 网络爬虫与数据采集分析系统必须遵守目标网站的Robots协议(查看https://目标网站域名/robots.txt);
- 使用Python接口时要确保计算机已安装Python(版本≥3.7);
1.47.3 核心网络爬虫与数据采集分析技术详解------HTTP访问对象/HTML解析/XPath正则/CSV导出 📝
1.47.3.1 HTTP访问对象与HTML解析(精易模块HTTP访问对象/XPath解析器·免费)
功能描述 :发送HTTP GET/POST请求获取目标网站的HTML数据,使用XPath解析器提取有价值的数据。
核心操作 :
✅ 发送HTTP GET/POST请求 :使用精易模块HTTP访问对象的"HTTP_GET()""HTTP_POST()"函数,设置User-Agent、Cookie、Referer、代理IP;
✅ 分析HTML结构 :使用Chrome/Firefox/Edge浏览器开发者工具的"Elements"选项卡;
✅ 提取XPath路径 :使用Chrome/Firefox/Edge浏览器开发者工具的"XPath Helper"插件;
✅ 解析HTML数据:使用精易模块XPath解析器的"XPath_解析HTML()""XPath_提取数据()"函数;
代码示例(使用精易模块HTTP访问对象/XPath解析器监控京东平台竞品价格·核心函数):
e
.版本 2
.支持库 spec
.支持库 json
.支持库 eSQLite
.支持库 iext
.支持库 gdip
.支持库 shell
.程序集 窗口程序集_启动窗口
.程序集变量 京东平台API接口, 文本型 ' 京东平台API接口:https://item.jd.com/1000123456.html
.程序集变量 京东平台请求头, 文本型 ' 请求头:User-Agent|Cookie|Referer|Proxy-IP
.程序集变量 竞品数据数组, 文本型, , "0" ' 竞品数据数组:商品ID|商品名称|价格|库存|销量|评价关键词|好评率|差评率|更新时间
.程序集变量 价格预警数组, 文本型, , "0" ' 价格预警数组:商品ID|商品名称|预警价格|当前价格|是否触发预警
.程序集变量 SQLite数据库句柄, 整数型 ' SQLite数据库句柄
.程序集变量 SQLite数据库状态, 逻辑型 ' 数据库状态:真为已连接,假为未连接
.程序集变量 网络爬虫定时器句柄, 整数型 ' 网络爬虫定时器句柄
.程序集变量 网络爬虫状态, 文本型 ' 网络爬虫状态:运行/暂停/结束/设置
.子程序 _启动窗口_创建完毕
' 初始化组件属性
_编辑框_京东平台API接口.内容 = "https://item.jd.com/1000123456.html"
_编辑框_请求间隔.内容 = "60000"
_编辑框_价格预警.内容 = "100"
' 初始化精易模块HTTP访问对象
精易模块.HTTP_初始化 ()
' 初始化XPath解析器
精易模块.XPath_初始化 ()
.子程序 _启动窗口_将被销毁
' 停止网络爬虫定时器
.如果真 (网络爬虫定时器句柄 ≠ 0)
精易模块.定时器_关闭 (取窗口句柄 (), 网络爬虫定时器句柄)
网络爬虫定时器句柄 = 0
.如果真结束
' 释放精易模块HTTP访问对象
精易模块.HTTP_释放 ()
' 释放XPath解析器
精易模块.XPath_释放 ()
' 断开SQLite数据库连接
.如果真 (SQLite数据库状态 = 真)
精易模块.SQLite_断开 (SQLite数据库句柄)
.如果真结束
.子程序 _按钮_添加竞品_被单击
' 检查输入框是否为空
.如果真 (_编辑框_京东平台API接口.内容 = "")
信息框 ("请输入京东平台API接口!", #警告图标, "电商平台竞品价格监控系统")
return ()
.如果真结束
' 发送HTTP GET请求获取HTML数据
.局部变量 京东平台API接口, 文本型
京东平台API接口 = _编辑框_京东平台API接口.内容
.局部变量 京东平台请求头, 文本型
京东平台请求头 = "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" + #换行符 + _
"Cookie: 你的京东平台Cookie" + #换行符 + _
"Referer: https://search.jd.com/Search?keyword=你的竞品关键词"
.局部变量 HTTP_GET结果, 文本型
HTTP_GET结果 = 精易模块.HTTP_GET (京东平台API接口, 京东平台请求头)
' 检查API函数返回值
.如果真 (HTTP_GET结果 = "")
信息框 ("发送HTTP GET请求失败!", #错误图标, "电商平台竞品价格监控系统")
return ()
.如果真结束
' 使用XPath解析器解析HTML数据
.局部变量 解析HTML结果, 文本型
解析HTML结果 = 精易模块.XPath_解析HTML (HTTP_GET结果)
' 提取商品ID
.局部变量 商品ID, 文本型
商品ID = 精易模块.XPath_提取数据 (解析HTML结果, "//*[@id='p-name']/span[1]/text()")
' 提取商品名称
.局部变量 商品名称, 文本型
商品名称 = 精易模块.XPath_提取数据 (解析HTML结果, "//*[@id='p-name']/span[1]/text()")
' 提取商品价格
.局部变量 商品价格, 文本型
商品价格 = 精易模块.XPath_提取数据 (解析HTML结果, "//*[@id='J-price']/text()")
' 提取库存
.局部变量 库存, 文本型
库存 = 精易模块.XPath_提取数据 (解析HTML结果, "//*[@id='J-stock']/span[1]/text()")
' 提取销量
.局部变量 销量, 文本型
销量 = 精易模块.XPath_提取数据 (解析HTML结果, "//*[@id='comment-count']/a/text()")
' 提取评价关键词
.局部变量 评价关键词, 文本型
评价关键词 = 精易模块.XPath_提取数据 (解析HTML结果, "//*[@id='comment-tags']/span/text()")
' 提取好评率
.局部变量 好评率, 文本型
好评率 = 精易模块.XPath_提取数据 (解析HTML结果, "//*[@id='comment-count']/a/text()")
' 提取差评率
.局部变量 差评率, 文本型
差评率 = 精易模块.XPath_提取数据 (解析HTML结果, "//*[@id='comment-count']/a/text()")
' 提取更新时间
.局部变量 更新时间, 文本型
更新时间 = 取现行时间 ()
' 加入竞品数据数组
重定义数组 (竞品数据数组, 假, 取数组成员数 (竞品数据数组) + 1)
竞品数据数组 [取数组成员数 (竞品数据数组)] = 商品ID + "|" + 商品名称 + "|" + 商品价格 + "|" + 库存 + "|" + 销量 + "|" + 评价关键词 + "|" + 好评率 + "|" + 差评率 + "|" + 更新时间
' 刷新竞品数据区
_按钮_查看竞品数据_被单击 ()
测试调试和优化经验 :
① 测试调试:
- 使用Chrome/Firefox/Edge浏览器开发者工具的"Elements"选项卡分析HTML结构;
- 使用Chrome/Firefox/Edge浏览器开发者工具的"Network"选项卡查看HTTP GET/POST请求;
- 使用精易模块网络调试器验证代码是否正确;
② 优化经验: - 请求间隔控制在60秒以上,避免触发京东平台的反爬虫机制;
- 自动随机切换User-Agent,避免触发京东平台的反爬虫机制;
- 使用IP代理池,避免触发京东平台的反爬虫机制;
1.47.4 网络爬虫与数据采集分析系统深度实战------2个高实用价值的联合项目 🛍️📰
1.47.4.1 项目1:电商平台竞品价格监控系统
项目需求分析 :
✅ 功能需求:
- 基础功能:支持监控京东/淘宝/拼多多/抖音商城/快手小店的竞品价格、库存、销量、评价关键词、好评率/差评率,设置价格预警、库存预警,导出CSV/Excel/PDF/JSON格式的监控报告,发送到指定邮箱/微信/企业微信;
- 辅助功能 :监控报告自动格式化(标题加粗/居中/字号20,表格边框/对齐/字号12,图表颜色/标题/坐标轴)、批量添加竞品、设置监控频率、游戏存档/读档、游戏设置;
✅ 非功能需求: - 界面设计:符合现代审美(扁平化风格,蓝色主题),功能分区明确(平台选择区/竞品添加区/价格预警区/库存预警区/监控报告区/发送邮件区/设置区);
- 响应时间:发送HTTP GET/POST请求响应时间不超过0.5秒,解析HTML数据响应时间不超过0.1秒,添加100个竞品响应时间不超过1分钟;
- 可靠性:目标网站拒绝访问时要提示用户,网络异常时要暂停发送邮件,3次以内自动重试,价格/库存异常时要提示用户;
界面设计 :
① 新建Windows窗口程序 :打开易语言官方IDE,点击"文件→新建→Windows窗口程序→确定";
② 添加容器组件 :从组件箱中拖拽7个分组框组件到"_启动窗口"上,属性名分别为"_分组框_平台选择区""_分组框_竞品添加区""_分组框_价格预警区""_分组框_库存预警区""_分组框_监控报告区""_分组框_发送邮件区""_分组框_设置区",标题分别为"平台选择区""竞品添加区""价格预警区""库存预警区""监控报告区""发送邮件区""设置区",位置分别为(10,10)、(10,130)、(10,390)、(10,510)、(10,630)、(10,890)、(400,10),宽度分别为380px、380px、380px、380px、380px、380px、380px,高度分别为110px、250px、110px、110px、250px、150px、770px;
③ 添加平台选择区组件:
- 5个单选框组件 :属性名分别为"_单选框_京东""_单选框_淘宝""_单选框_拼多多""_单选框_抖音商城""_单选框_快手小店",标题分别为"京东""淘宝""拼多多""抖音商城""快手小店",位置分别为(20,20)、(20,60)、(120,20)、(120,60)、(220,20);
④ 添加竞品添加区组件: - 1个编辑框组件:属性名分别为"_编辑框_平台API接口",内容分别为"https://item.jd.com/1000123456.html",位置分别为(20,20),宽度分别为340px,高度统一为25px;
- 2个按钮组件:属性名分别为"_按钮_添加竞品""_按钮_删除竞品",标题分别为"添加竞品""删除竞品",位置分别为(20,60)、(140,60),宽度分别为80px、80px,高度统一为25px;
- 1个列表框组件 :属性名分别为"_列表框_竞品数据区",位置为(20,100),宽度为340px,高度为140px,允许选择为真,列数为9,列标题分别为"商品ID""商品名称""价格""库存""销量""评价关键词""好评率""差评率""更新时间";
⑤ 添加价格预警区组件: - 1个编辑框组件:属性名分别为"_编辑框_价格预警",内容分别为"100",位置分别为(20,20),宽度分别为100px,高度统一为25px;
- 1个按钮组件:属性名分别为"_按钮_设置价格预警",标题分别为"设置价格预警",位置分别为(140,20),宽度分别为80px,高度统一为25px;
- 1个列表框组件 :属性名分别为"_列表框_价格预警区",位置为(20,60),宽度为340px,高度为40px,允许选择为真,列数为5,列标题分别为"商品ID""商品名称""预警价格""当前价格""是否触发预警";
⑥ 添加库存预警区组件: - 1个编辑框组件:属性名分别为"_编辑框_库存预警",内容分别为"10",位置分别为(20,20),宽度分别为100px,高度统一为25px;
- 1个按钮组件:属性名分别为"_按钮_设置库存预警",标题分别为"设置库存预警",位置分别为(140,20),宽度分别为80px,高度统一为25px;
- 1个列表框组件 :属性名分别为"_列表框_库存预警区",位置为(20,60),宽度为340px,高度为40px,允许选择为真,列数为5,列标题分别为"商品ID""商品名称""预警库存""当前库存""是否触发预警";
⑦ 添加监控报告区组件: - 2个标签组件:属性名分别为"_标签_监控报告类型""_标签_监控报告时间段",标题分别为"监控报告类型:""监控报告时间段:",位置分别为(20,20)、(20,60);
- 2个组合框组件:属性名分别为"_组合框_监控报告类型""_组合框_监控报告时间段",内容分别为"CSV/Excel/PDF/JSON""每日/每周/每月",位置分别为(120,20)、(120,60),宽度分别为100px、100px,高度统一为25px;
- 2个按钮组件 :属性名分别为"_按钮_生成监控报告""_按钮_查看监控报告",标题分别为"生成报告""查看报告",位置分别为(240,60)、(340,60),宽度分别为80px、80px,高度统一为25px;
⑧ 添加发送邮件区组件: - 1个标签组件:属性名分别为"_标签_发送到邮箱",标题分别为"发送到邮箱:",位置分别为(20,20);
- 1个编辑框组件:属性名分别为"_编辑框_发送到邮箱",内容分别为"123456@qq.com",位置分别为(120,20),宽度分别为200px,高度统一为25px;
- 1个按钮组件:属性名分别为"_按钮_发送邮件",标题分别为"发送邮件",位置分别为(340,20),宽度分别为80px,高度统一为25px;
- 1个选择框组件 :属性名分别为"_选择框_发送邮件",标题分别为"生成报告后自动发送邮件",位置分别为(20,60);
⑨ 添加设置区组件: - 2个标签组件:属性名分别为"_标签_请求间隔""_标签_代理IP",标题分别为"请求间隔(毫秒):""代理IP:",位置分别为(20,20)、(20,60);
- 2个编辑框组件:属性名分别为"_编辑框_请求间隔""_编辑框_代理IP",内容分别为"60000""192.168.1.100:8080",位置分别为(140,20)、(140,60),宽度分别为100px、100px,高度统一为25px;
- 2个按钮组件 :属性名分别为"_按钮_设置请求间隔""_按钮_设置代理IP",标题分别为"设置请求间隔""设置代理IP",位置分别为(260,20)、(260,60),宽度分别为80px、80px,高度统一为25px;
⑩ 添加支持库和模块: - 添加spec、json、eSQLite、iext、gdip、shell支持库;
- 添加精易模块HTTP访问对象/XPath解析器/CSV/Excel/PDF/JSON助手/SQLite/MySQL助手/gdip可视化/定时器/线程池/try-catch/日志记录器/自动重试;
测试调试和优化经验 :
① 测试调试:
- 使用Chrome/Firefox/Edge浏览器开发者工具的"Elements"选项卡分析HTML结构;
- 使用精易模块网络调试器验证代码是否正确;
② 优化经验: - 请求间隔控制在60秒以上,避免触发目标网站的反爬虫机制;
- 自动随机切换User-Agent,避免触发目标网站的反爬虫机制;
- 使用IP代理池,避免触发目标网站的反爬虫机制;
1.47.5 网络爬虫与数据采集分析系统的性能与反爬虫优化------提升系统效率与稳定性 🚀
1.47.5.1 反爬虫优化(IP代理池+User-Agent池+Cookie池+验证码识别+请求间隔控制+异步请求)
功能描述 :使用多种反爬虫技术,避免触发目标网站的反爬虫机制,提高系统效率与稳定性。
核心操作 :
✅ 使用IP代理池 :调用腾讯云/阿里云/华为云API·免费/付费,获取代理IP列表,自动随机切换;
✅ 使用User-Agent池 :精易模块提供100+种常见的User-Agent,自动随机切换;
✅ 使用Cookie池 :自动登录保存Cookie,发送HTTP GET/POST请求时设置Cookie;
✅ 使用验证码识别 :调用百度OCR/阿里云OCR/腾讯云OCR·免费/付费,识别目标网站的验证码;
✅ 请求间隔控制 :使用精易模块定时器,设置请求间隔(60秒以上);
✅ 异步请求:使用精易模块线程池,异步发送HTTP GET/POST请求;
代码示例(使用IP代理池+User-Agent池+Cookie池+验证码识别+请求间隔控制+异步请求):
e
.版本 2
.支持库 spec
.支持库 json
.支持库 eSQLite
.支持库 iext
.支持库 gdip
.支持库 shell
.程序集 窗口程序集_启动窗口
.程序集变量 IP代理池数组, 文本型, , "0" ' IP代理池数组:IP|端口|类型|地区|速度|时间
.程序集变量 UserAgent池数组, 文本型, , "0" ' User-Agent池数组
.程序集变量 Cookie池数组, 文本型, , "0" ' Cookie池数组:平台|Cookie|时间
.程序集变量 请求间隔, 整数型 ' 请求间隔(毫秒)
.子程序 _按钮_设置请求间隔_被单击
' 检查输入框是否为空
.如果真 (_编辑框_请求间隔.内容 = "")
信息框 ("请输入请求间隔!", #警告图标, "电商平台竞品价格监控系统")
return ()
.如果真结束
' 设置请求间隔
请求间隔 = 到整数 (_编辑框_请求间隔.内容)
' 设置网络爬虫定时器
网络爬虫定时器句柄 = 精易模块.定时器_创建 (取窗口句柄 (), 1, 请求间隔)
' 绑定定时器事件
_定时器事件_被执行 = &_定时器事件_被执行
.子程序 _定时器事件_被执行
' 检查网络爬虫状态
.如果真 (网络爬虫状态 ≠ "运行")
return ()
.如果真结束
' 自动随机切换IP代理
.局部变量 随机IP代理, 文本型
随机IP代理 = IP代理池数组 [取随机数 (1, 取数组成员数 (IP代理池数组))]
' 自动随机切换User-Agent
.局部变量 随机UserAgent, 文本型
随机UserAgent = UserAgent池数组 [取随机数 (1, 取数组成员数 (UserAgent池数组))]
' 自动设置Cookie
.局部变量 平台Cookie, 文本型
平台Cookie = Cookie池数组 [取数组成员数 (Cookie池数组)]
' 发送HTTP GET/POST请求
.局部变量 HTTP访问结果, 文本型
HTTP访问结果 = 精易模块.HTTP_发送请求 (_编辑框_平台API接口.内容, "GET", "", 随机UserAgent, 平台Cookie, 随机IP代理)
' 检查API函数返回值
.如果真 (HTTP访问结果 = "")
精易模块.日志记录 ("发送HTTP GET请求失败!", "error")
return ()
.如果真结束
' 使用XPath解析器解析HTML数据
.局部变量 解析HTML结果, 文本型
解析HTML结果 = 精易模块.XPath_解析HTML (HTTP访问结果)
' 提取商品价格
.局部变量 商品价格, 文本型
商品价格 = 精易模块.XPath_提取数据 (解析HTML结果, "//*[@id='J-price']/text()")
' 检查价格是否异常
.如果真 (商品价格 = "" 或 商品价格 = "0")
精易模块.日志记录 ("商品价格异常!", "error")
return ()
.如果真结束
' 刷新竞品数据区
_按钮_查看竞品数据_被单击 ()
1.47.6 网络爬虫与数据采集分析系统常见问题排查手册 🚨
1.47.6.1 目标网站拒绝访问
问题现象 :发送HTTP GET/POST请求响应时间过长或提示"目标网站拒绝访问!"。
原因分析:
- 请求间隔太短;
- User-Agent没有设置或设置错误;
- IP地址被目标网站屏蔽;
- Cookie无效;
解决方案: - 请求间隔控制在60秒以上;
- 自动随机切换User-Agent;
- 使用IP代理池;
- 自动登录保存Cookie;
1.47.6.2 验证码识别失败
问题现象 :发送HTTP GET/POST请求响应时间过长或提示"验证码识别失败!"。
原因分析:
- 验证码图片格式不支持;
- 验证码图片模糊;
- 验证码识别API接口无效;
解决方案: - 验证码图片格式转换为bmp/jpg/png/gif;
- 验证码图片缩放/旋转/裁剪/水印/滤镜;
- 更换验证码识别API接口;
1.47.7 进阶篇总结与网络爬虫与数据采集分析系统未来发展方向 📜
1.47.7.1 本章核心收获
- ✅ 构建网络爬虫与数据采集分析系统的五层标准化开发模式:掌握"准备层→需求分析层→技术选型层→代码实现层→测试调试与反爬虫优化层"的五层标准化开发模式;
- ✅ 掌握核心网络爬虫与数据采集分析技术:精通常用的HTTP访问对象/HTML解析/XPath正则/CSV导出/可视化展示/腾讯云COS/阿里云OSS/华为云OBS/IP代理池/User-Agent池/Cookie池/验证码识别;
- ✅ 开发2个高实用价值的联合项目:完成电商平台竞品价格监控系统、新闻舆情监控系统;
- ✅ 掌握网络爬虫与数据采集分析系统的工具与方法:使用Chrome/Firefox/Edge浏览器开发者工具、Wireshark/Charles网络抓包、Postman API测试、Microsoft Excel/Power BI/Canva制作监控报告;
- ✅ 掌握性能与稳定性优化:大文件分块处理、多个文件异步调用、数据缓存机制、try-catch+自动重试+日志记录;
1.47.7.2 网络爬虫与数据采集分析系统未来发展方向
网络爬虫与数据采集分析系统未来发展方向主要有以下5个:
💡 AI辅助网络爬虫与数据采集分析 :使用AI工具(如ChatGPT/微软Copilot)自动生成代码、自动修复错误、自动优化性能、自动识别目标网站的反爬虫机制、自动生成监控报告;
💡 移动网络爬虫与数据采集分析 :使用移动设备(如手机/平板)自动读取文件、自动统计数据、自动生成报表、自动发送邮件;
💡 云端网络爬虫与数据采集分析 :使用云服务器(如阿里云/腾讯云/华为云)自动存储文件、自动统计数据、自动生成报表、自动发送邮件;
💡 区块链技术应用 :使用区块链技术存储监控报告/竞品数据/舆情数据,防止数据篡改;
💡 零信任架构:使用零信任架构,不信任任何用户或设备,只信任经过验证的身份和权限;
🎉 易语言开发从入门到精通的进阶篇·网络爬虫与数据采集分析系统深度实战·HTTP访问对象/Python接口/HTML解析/XPath正则/CSV/JSON导出·SQLite/MySQL本地/云端存储·gdip可视化·电商竞品分析/新闻舆情监控·综合网络爬虫工具·性能与反爬虫优化,至此结束!愿你在易语言的世界里,不断学习,不断进步,开发出更多"高效、稳定、易用、可扩展、合规"的网络爬虫与数据采集分析系统,提高个人效率,降低企业成本,实现创意梦想!
