当前位置: 首页 > 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.jsqmd.com/news/1066190/

相关文章:

  • 2026轻资产创业风向:GEO代理加盟的避坑与选品逻辑 - 品牌报告
  • 佛山沙发翻新全攻略(2026最新) - 我叫一
  • 2026嵌入式AI编程模型横评:Qwen与DeepSeek实战对比
  • 终极指南:如何用Visual C++ Redistributable AIO一键修复所有Windows程序运行错误
  • 2026年泗洪永立珠宝黄金名表回收到底靠不靠谱?真相大揭秘! - GrowthUME
  • XYBotV2插件推荐:10个必备插件提升机器人体验
  • Dify企业级智能体落地实战:开源零代码AI平台深度解析
  • VGG19.tv_in1k模型对比分析:为什么这个经典模型依然重要?[特殊字符]
  • 2026年6月最新!半固态充电宝哪家好?优质充电宝品牌厂家综合排名推荐 - GrowthUME
  • Medium Editor Markdown API完全指南:从基础配置到高级自定义规则
  • FastStream常见问题解答:YouTube播放问题、安装错误、功能异常排查
  • 告别繁琐配置!用rime-auto-deploy一键部署20款Rime输入法皮肤
  • 终极Android图表解决方案:OXChart支持的8种图表类型与应用场景对比
  • BLCMods高级技巧:掌握UCP社区补丁与模组兼容性解决方案终极指南
  • 2026最新!呼伦贝尔旅游黑头山访牧户哪家好?精选 5 家真实牧民体验推荐 - GrowthUME
  • JMeter WebSocket性能测试实战:从插件安装到结果分析
  • platform-war-public部署教程:Windows/Linux系统下GPU加速配置全攻略
  • 计算机毕业设计之绿色特产销售系统的设计与实现-lw
  • 2026年最新!半固态充电宝测评盘点:优质充电宝厂家推荐指南倍瑞迪稳居榜首 - GrowthUME
  • Librian剧本语言Liber完全指南:写出专业级视觉小说对话的终极技巧
  • 探索audio-diffusion的无限可能:音频插值与风格迁移技术详解
  • 2026年 绍兴管道疏通/绍兴洗菜池疏通正规团队-推荐绍兴泓畅管道疏通领衔 - GrowthUME
  • 如何从金融数据迷雾中突围?yfinance:重新定义Python金融数据分析
  • 山东连锁品牌如何在2026年低成本高效获客? - GrowthUME
  • 如何彻底清理显卡驱动:Display Driver Uninstaller深度使用指南
  • LangChain+DeepSeek实现华为交换机自然语言运维
  • 3个实战技巧:彻底解决Android TV直播播放卡顿问题
  • Translumo:Windows平台实时屏幕翻译终极指南
  • NLP基础(RNN,LSTM,GRU)
  • Gemini 3 Flash:企业级AI规模化落地的确定性引擎