仿链家地图找房_愉快滴抓取链家地图找房中的商圈
首先,将自定义的监听xhr事件的方法override原本的XMLHttpRequest(from:分享JavaScript监听全部Ajax请求事件的方法)
(function () {
if (typeof window.CustomEvent === "function") return false;
function CustomEvent(event, params) {
params = params || {
bubbles: false,
cancelable: false,
detail: undefined
};
var evt = document.createEvent('CustomEvent');
evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);
return evt;
}
CustomEvent.prototype = window.Event.prototype;
window.CustomEvent = CustomEvent;
})();
(function () {
function ajaxEventTrigger(event) {
var ajaxEvent = new CustomEvent(event, {
detail: this
});
window.dispatchEvent(ajaxEvent);
}
var oldXHR = window.XMLHttpRequest;
function newXHR() {
var realXHR = new oldXHR();
realXHR.addEventListener('abort', function () {
ajaxEventTrigger.call(this, 'ajaxAbort');
}, false);
realXHR.addEventListener('error', function () {
ajaxEventTrigger.call(this, 'ajaxError');
}, false);
realXHR.addEventListener('load', function () {
ajaxEventTrigger.call(this, 'ajaxLoad');
}, false);
realXHR.addEventListener('loadstart', function () {
ajaxEventTrigger.call(this, 'ajaxLoadStart');
}, false);
realXHR.addEventListener('progress', function () {
ajaxEventTrigger.call(this, 'ajaxProgress');
}, false);
realXHR.addEventListener('timeout', function () {
ajaxEventTrigger.call(this, 'ajaxTimeout');
}, false);
realXHR.addEventListener('loadend', function () {
ajaxEventTrigger.call(this, 'ajaxLoadEnd');
}, false);
realXHR.addEventListener('readystatechange', function () {
ajaxEventTrigger.call(this, 'ajaxReadyStateChange');
}, false);
return realXHR;
}
window.XMLHttpRequest = newXHR;
})();
然后使用上面自定义的方法进行监听,筛选出所需要的接口并拿到返回的数据,再发送数据到自己的接口进行存储等操作。
window.addEventListener('ajaxLoadEnd', function (e) {
let { response, responseURL } = e.detail
if (responseURL.includes('save_lianjia_sq')) {
console.log(response)
}
if(!/.*map\/bubblelist.*groupType\=bizcircle.*/.test(responseURL)) return;
let cityCode = responseURL.match(/(?<=cityId\=)\d{6}/g)[0]
let resInfo = JSON.parse(response)
var xhrMy = new XMLHttpRequest()
xhrMy.open("post", "http://127.0.0.1:8889/transfer/spider/save_lianjia_sq")
xhrMy.setRequestHeader("Content-type", "application/json")
xhrMy.send(JSON.stringify({
activeCity: cityCode,
activeSq: resInfo.data.bubbleList
}))
});
最终使用方法:打开链家地图找房,f12然后输入上方所有js代码,将地图缩放到显示商圈的那一级,拖动到相应区域,该区域的商圈信息就会被发送到指定的接口了。
PS:通过这种在控制台注入js的方法还可以实现一些其他有趣的功能。
仿链家地图找房_愉快滴抓取链家地图找房中的商圈相关推荐
- python 从excel中抓取数据_使用Python抓取美团数据存于Excel中
0.程序是针对美团中的美食部分数据按好评排序采集. 要抓取保存的数据为: 商家名类型 地理位置 评论人数 均价 最低价格 1.首先编写网页数据采集函数,使用request采集网页源码,具体实现如 ...
- python找房源_python抓取链家房源信息(二)
试着用scrapy将之前写的抓取链家网信息的重新写了写 然后先是用了第一页的网页作为测试,调试代码,然后发现总是抓取的时候遇见了 类似于这样的问题,并且抓取不到信息 2017-03-28 17:52: ...
- python爬虫之scrapy初试与抓取链家成交房产记录
接上一篇文章,本机安装好python之后和scrapy之后,我们开始学习使用scrapy创建爬虫程序. 今天先来点简单的,不那么复杂,先看看抓取链家网里面的房价信息. 首先使用CMD命令行进入F盘创建 ...
- Python爬虫三:抓取链家已成交二手房信息(58W数据)
环境:Windows7+python3.6+Pycharm2017 目标:抓取链家北京地区已成交二手房信息(无需登录),如下图,户型.朝向.成交时间价格等,保存到csv.最后一共抓取约58W数据,程序 ...
- 链家网开源java_异步协程爬取链家租房信息
异步协程抓取链家数据+pandas写入csv import asyncio import aiohttp import pandas from bs4 import BeautifulSoup fro ...
- 仿链家地图找房_全网稀缺,完整链家地图找房的实现(一)
前一段时间我应公司的需求开发了类似链家地图找房的功能,然而我发现现在市面上,对于链家地图找房功能的完整实现相关的文章还是比较稀缺的,亦或是功能还不够完善,出于这个方面,我觉得把自己对于链家地图找房功能 ...
- python爬房源信息_用python爬取链家网的二手房信息
题外话:这几天用python做题,算是有头有尾地完成了.这两天会抽空把我的思路和方法,还有代码贴出来,供python的初学者参考.我python的实战经历不多,所以代码也是简单易懂的那种.当然过程中还 ...
- python关于二手房的课程论文_基于python爬取链家二手房信息代码示例
基本环境配置 python 3.6 pycharm requests parsel time 相关模块pip安装即可 确定目标网页数据 哦豁,这个价格..................看到都觉得脑阔 ...
- python 爬取链家数据_用python爬取链家网的二手房信息
题外话:这几天用python做题,算是有头有尾地完成了.这两天会抽空把我的思路和方法,还有代码贴出来,供python的初学者参考.我python的实战经历不多,所以代码也是简单易懂的那种.当然过程中还 ...
- python3爬虫抓取链家上海租房信息
环境:win10,anaconda3(python3.5) 爬取对象网站:链家上海租房 方法一:利用requests获取网页信息,再利用正则提取数据,并将结果保存到csv文件. 代码地址:代码 抓取到 ...
最新文章
- day05 Spring中自定义注解的用处-之获取自定义的Servie
- 剖析疫情环境下的国内云市场:大势所趋,正是大展拳脚的好时机!
- leetcode--Rotate List
- 从零手动实现简易Tomcat
- Acrobat Pro DC 教程,如何使用密码保护 PDF 文件?
- Android自动化测试之MonkeyRunner使用
- JDK动态代理与CGLIB的区别
- vassistx插件
- cmd 复制文件命令copy 复制目录树命令xcopy
- linux aria2安装路径,Aria2 Linux 完整安装及使用教程
- cannot set options after executing query
- C语言getc函数没错不管用,对比C语言中getc()函数和ungetc()函数的使用
- Vue全家桶打造自适应 web 音乐播放器
- linux修改分区自检,linux tune2fs命令取消大分区开机自检
- java题目练习笔记,java 20道、数量关系8道、判断推理8道、智力题8道
- 20154312 曾林 EXP7 网络欺诈防范
- Wifi P2p技术研究
- AIX pv vg lv fs 文件系统
- 用爬虫批量采集阿里巴巴1688商品数据
- Java 由今天往前推7天怎么算
热门文章
- PS 画笔工具与文字工具
- php soap wsse,改变xmlns:wsse命名空间在使用Python Zeep的SOAP请求中
- ubuntu如何打拼音
- 微信公众号软件安装管家所有软件插件打包
- NoWritableEnvsDirError: No writeable envs directories configured.
- 利用BigDecimal类巧妙处理Double类型精度丢失
- 个推大数据:3月线上消费率先恢复,在线购物APP迎来春天
- 3dMax2020 渲染后保存图片时卡住解决方法
- 【黑盒测试用例设计方法5】正交试验法及其示例
- 地图编辑器怎样炼成的