此文章仅供合法用途请勿违反法律据一些网络调查显示大约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?callbackdatatable3948764columnsREPORT_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_ACCUMULATEpageNumber1pageSize20sortColumnsREPORT_DATEsortTypes-1sourceWEBclientWEBreportNameRPT_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)