当前位置: 首页 > news >正文

利用python传统网络爬虫包爬取Ajax网站数据

此文章仅供合法用途,请勿违反法律!

据一些网络调查显示,大约40%的爬虫任务属于Ajax网站。所谓Ajax网站,就是内容动态生成的网站,Ajax网站的最大特征就是翻页时url没有变化,因此如果用selenium的get方法是无法获得网站的信息的,因为使用selenium时网站的源码在翻页或刷新后仍然是前一页的源码,我们想要的新信息在新的一页,所以webdriver.find_elements()方法是无法获得新信息的。

爬取Ajax网站的网站最重要的步骤就是获取真正的从服务器获取信息的url,而不是网址的url。以东方财富网为例,如何获取真正的url请参考CSDN文章《爬虫案例5——爬取东方财富网的港股数据》。

获取到真正的url之后,就可以用request包来爬取数据了。以下是我爬取东方财富网cpi数据的代码,供大家参考。我的系统是mac,大家注意要把代码转换成自己的系统。

import requests import re import openpyxl url=("https://datacenter-web.eastmoney.com/api/data/v1/get?callback=datatable3948764&columns=REPORT_DATE%2CTIME%2CNATIONAL_SAME%2CNATIONAL_BASE%2CNATIONAL_SEQUENTIAL%2CNATIONAL_ACCUMULATE%2CCITY_SAME%2CCITY_BASE%2CCITY_SEQUENTIAL%2CCITY_ACCUMULATE%2CRURAL_SAME%2CRURAL_BASE%2CRURAL_SEQUENTIAL%2CRURAL_ACCUMULATE&pageNumber=1&pageSize=20&sortColumns=REPORT_DATE&sortTypes=-1&source=WEB&client=WEB&reportName=RPT_ECONOMY_CPI&_=1739344903750") #要用真正的url而不是网址,详情见CSDN文章《爬虫案例5——爬取东方财富网的港股数据》 htmlfile = requests.post(url) print(htmlfile.text) timepattern = '(\\d)(\\d)(\\d)(\\d)[\u4E00-\u9FA5](\\d{2})[\u4E00-\u9FA5]{2,4}' cpipattern = '[A-Za-z0-9_][A-Za-z0-9_][A-Za-z0-9_][A-Za-z0-9_][A-Za-z0-9_][A-Za-z0-9_][A-Za-z0-9_][A-Za-z0-9_]\\BASE\\"\\:(\\d)(\\d)(\\d)?(.)?(\\d)?' fn = '/Users/lpl/Desktop/gold.xlsx' wb = openpyxl.load_workbook('/Users/l/Desktop/gold.xlsx') ws = wb.active dates = re.findall(timepattern,htmlfile.text) cpis = re.findall(cpipattern,htmlfile.text) print(dates) print(cpis) dateEmpty = [] cpiEmpty = [] for date in dates: strDate = "".join(date) dateEmpty.append(strDate) for cpi in cpis: strcpi = "".join(cpi) cpiEmpty.append(strcpi) ws.append(dateEmpty) ws.append(cpiEmpty) wb.save('/Users/l/Desktop/gold.xlsx')
http://www.gsyq.cn/news/1578125.html

相关文章:

  • XYBotV2插件推荐:10个必备插件提升机器人体验
  • Dify企业级智能体落地实战:开源零代码AI平台深度解析
  • 2026年6月最新!半固态充电宝哪家好?优质充电宝品牌厂家综合排名推荐 - GrowthUME
  • Medium Editor Markdown API完全指南:从基础配置到高级自定义规则
  • platform-war-public部署教程:Windows/Linux系统下GPU加速配置全攻略
  • 探索audio-diffusion的无限可能:音频插值与风格迁移技术详解
  • Librian剧本语言Liber完全指南:写出专业级视觉小说对话的终极技巧
  • 如何用AI插件快速解决Blender镜头畸变问题:终极BlenderMCP使用指南
  • 强化学习在自动驾驶决策中的工程落地困境与实践路径
  • 义乌管道疏通正规商家/义乌马桶下水道疏通指南(2026新)承接家庭疏通马桶/清理化粪池 - GrowthUME
  • SVTime:高效时间序列预测模型的物理特性设计
  • Java面试能力诊断地图:从JVM到Spring的深度技术拆解
  • 2026年6月最新!呼伦贝尔旅游黑头山亲子游攻略:访牧户与民宿住宿推荐一定要去 美丽草原访牧户 - GrowthUME
  • OXChart与ECharts混合开发:WebView集成实现复杂数据可视化的最佳实践
  • PostgreSQL ROW_NUMBER() 窗口函数完全解析
  • 2026深圳靠谱装修公司盘点 覆盖新房整装、老房翻新与别墅全案 - GrowthUME
  • 2026年潍坊企业做网站建设怎么选?找正规源头服务商更省心靠谱 - GrowthUME
  • console-powers源码解析:理解控制台输出的底层原理
  • 在 C# 中,异步任务取消机制是异步编程中处理任务中断的核心功能,广泛应用于需要响应用户操作、超时或外部条件终止任务的场景
  • AI API中转站:统一OpenAI接口调用600+模型的工程实践
  • B站会员购抢票神器终极指南:三步配置零基础快速上手biliTickerBuy
  • Whisper语音识别:如何用74M参数模型重塑你的音频处理体验?
  • 2026最新!呼伦贝尔黑头山观光游玩指南:最值得去的访牧户与民宿评测推荐 - GrowthUME
  • 深入理解Clock8:为什么PHP项目需要时钟抽象层?终极指南
  • 汽车贴改色膜选购,知名、专业、资质齐全企业口碑怎么样? - mypinpai
  • clj-refactor.el 未来发展路线图:即将推出的 5 个令人期待的新功能
  • 如何快速美化你的Terminal终端:Terminator Themes终极指南
  • MacSymbolicator终极指南:3步完成iOS/macOS崩溃报告符号化
  • 3步掌握LibreHardwareMonitor:终极免费硬件监控工具完全指南
  • 开源超级终端PuTTY改进之:增加点对点网络协议IocHub,实现跨网段远程登录自己的Linux主机