一、背景思路
爬取贝壳上二手房信息时,想要将对应房源近一个月的带看信息弄下来,看看哪些房源热度最高。结果毫无意外,简单粗暴的BeautifulSoup+select无法将这部分信息弄下来,如下图,如果带看记录过多,页面是通过按钮控制切换的,静态页面上最多只有当前3个带看信息。
一般像这种在局部页面点击能进行数据更新,而网页的url不会变化的,大概率都是通过异步加载(AJAX)进行数据更新。沿着这个思路观察了一下,果真在XHR中找到了这部分信息(关于chrome浏览器下的XHR、JS等,下面第三部分会介绍的哈),AJAX实现异步更新是Json,所以接下来只需想办法把相应的json文件弄下来,就能提取到想要的信息了。
二、先上代码再说
首先在XHR找到对应请求的的url,用requests.get()发送请求,再用json.load()下载json信息,接下来就按在字典里提取值的方法进行数据提取了