Ajax是Asynchronous JavaScript and XML的缩写 翻译:异步JavaScript和XML
Asynchronous---不同时存在(或发生)的,即异步
Ajax数据---通俗地说,就是网页中能看到数据,但在网页源代码中找不到
如何获取Ajax数据?----F12打开调试窗口,Network里面
[实例]:获取京东商城中手机的价格
打开手机所在的网页,按F12打开调试窗口。这里可以看见商品的名称、价格等信息。
将商品名复制后,在源代码中查找。这里可以找到商品名称。但是找不到商品的价格。
按F12打开调试窗口,点Network,再刷新一下网页
在搜索框中搜price,显示的文件就是和价格相关的
点击Headers,复制网址
在浏览器中打开这个网址
price_url = """https://p.3.cn/prices/mgets?callback=jQuery7985518&ext
=11101100&pin=&type=1&area=17_1396_23284_0&skuIds=J_100002544828%2C
J_100000177760%2CJ_100001550349%2CJ_100003534811%2CJ_8735304%2CJ_100
004323294%2CJ_100006635632%2CJ_100002749549%2CJ_100003060627%2CJ_100
002019841%2CJ_100000400010%2CJ_100000287113%2CJ_7321794%2CJ_10000371
7483%2CJ_100005603522%2CJ_7437710%2CJ_6051045%2CJ_100005787046%2CJ_10
0004049987%2CJ_100000766433%2CJ_100003786269%2CJ_5089267%2CJ_10000065
1175%2CJ_3133827%2CJ_8264403%2CJ_100001693805%2CJ_100002677997%2CJ_10
0000349372%2CJ_100005702210%2CJ_100003434260&pdbp=0&pdtk=&pdpin=&pduid
=1564886323004371027678&source=list_pc_front&_=1565424851431
"""
price_res = requests.get(price_url)
pat = '"p":"(.*?)"'
r = re.findall(pat, price_res.text)
print(r)
print(len(r))
输出结果:
['2099.00', '5299.00', '999.00', '2499.00', '1099.00', '1399.00', '3988.00', '1299.00',
'1799.00', '9099.00', '2788.00', '2699.00', '1399.00', '4299.00', '1598.00',
'1299.00', '1998.00', '3499.00', '2949.00', '599.00', '1099.00', '699.00', '1899.00', '2999.00']
24