普租房子查看页面,把信息加工出来
// ==UserScript==
// @name 链家普租带看单生成2.43
// @version 2.43
// @description 普租房子查看页面,把信息加工出来
// @author 链家员工
// @match https://lease-pz.link.lianjia.com/rent/house/detail/*
// @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant none
// @namespace https://greasyfork.org/users/1360117
// ==/UserScript==
(function () {
'use strict';
init()
//构建道具窗口
function init() {
const Panel_DIV = document.createElement('div');
Panel_DIV.id = "Panel_DIV";
Panel_DIV.className = "Panel_DIV";
Panel_DIV.style.position = 'fixed';
Panel_DIV.style.top = '36px';
Panel_DIV.style.right = '65px';
//Panel_DIV.style.transform = 'translateX(-50%)';
Panel_DIV.style.backgroundColor = 'rgba(0, 0, 0, 0.8)';
Panel_DIV.style.padding = '6px 10px'; // 修改内边距
Panel_DIV.style.color = 'white';
Panel_DIV.style.fontSize = '11px';
Panel_DIV.style.textAlign = 'center';
Panel_DIV.style.zIndex = '9999';
Panel_DIV.style.width = '105px'; // 设置宽度
//Panel_DIV.style.height = '250px'; // 设置高度
Panel_DIV.innerHTML = '普租带看单生成';
// 创建一个确认按钮
const buttonKaiGuan = document.createElement('button');
buttonKaiGuan.style.display = 'block';
buttonKaiGuan.style.margin = "auto";
buttonKaiGuan.style.textAlign = 'center';
buttonKaiGuan.style.backgroundColor = '';
buttonKaiGuan.style.color = 'black';
buttonKaiGuan.style.border = 'none';
buttonKaiGuan.style.cursor = 'pointer';
buttonKaiGuan.style.outline = 'none';
buttonKaiGuan.innerHTML = '生成';
// 为按钮添加点击事件
buttonKaiGuan.addEventListener('click', () => {
//alert("点击了生成按钮")
//调用函数生成带看单
puzuDAIKAN();
});
// 将div和按钮添加到body中
Panel_DIV.appendChild(buttonKaiGuan);
// 设置焦点到确认按钮
buttonKaiGuan.focus();
document.body.appendChild(Panel_DIV);
}
//预设各种变量
//小区名称
var xiaoquNAME = "啥小区啊"
//居室
var houseJUSHI = "啥居室啊"
//面积
var houseMIANJI = "面积多大啊"
//朝向
var houseCHAOXIANG = "啥朝向啊"
//入住时间
var ruzhuTIME = "啥入住时间啊"
//租期要求
var houseZUQI = "啥租期啊"
//价格
var housePRICE = "啥价格啊"
//楼层
var houseLOUCENG = "啥楼层啊"
//房源编码
var houseCODE = "-"
//有没有维护人,维护人是否存在
var weihuPEOPLE_exists = false
//维护人
var weihuPEOPLE = "维护人是谁啊"
//维护人门店
var weihuPEOPLE_mendian = "维护人哪个店的啊"
//有没有钥匙人,钥匙人是否存在
var yaoshiPEOPLE_exists = false
//钥匙人
var yaoshiPEOPLE = "钥匙人是谁啊"
//钥匙人门店
var yaoshiPEOPLE_mendian = "钥匙人哪个店的啊"
//录入人
var luruPEOPLE = "录入人是谁啊"
//录入人门店
var luruPEOPLE_mendian = "录入人哪个店的啊"
//两个角色人信息
var juesePEOPLE001 = "张三";
var juesePEOPLE002 = "李四";
var svgERWEI = document.createElement("svg")
svgERWEI.innerHTML = '<svg id="svgERWEI" width="100" height="100" xmlns="http://www.w3.org/2000/svg"><!-- Created with Method Draw - http://github.com/duopixel/Method-Draw/ --><g><title>background</title><rect fill="#0fffff" id="canvas_background" height="102" width="102" y="-1" x="-1"/><g display="none" overflow="visible" y="0" x="0" height="100%" width="100%" id="canvasGrid"><rect fill="url(#gridpattern)" stroke-width="0" y="0" x="0" height="100%" width="100%"/></g></g><g><title>Layer 1</title><text transform="rotate(-45 42.81383514404296,39.558170318603516) " opacity="0.75" xml:space="preserve" text-anchor="start" font-family="Helvetica, Arial, sans-serif" font-size="37" id="svg_1" y="52.232558" x="-1.372098" stroke-width="0" stroke="#000" fill="#000000">OMG</text><line stroke-linecap="undefined" stroke-linejoin="undefined" id="svg_15" y2="264" x2="-60.5" y1="239" x1="-60.5" fill-opacity="null" stroke-opacity="null" stroke-width="99" stroke="#000" fill="none"/><text opacity="0.75" transform="rotate(135 60.4881935119629,57.2325439453125) " xml:space="preserve" text-anchor="start" font-family="Helvetica, Arial, sans-serif" font-size="37" id="svg_16" y="69.906928" x="16.302272" stroke-width="0" stroke="#000" fill="#000000">OMG</text></g></svg>'
var hoseERWEI_new = document.createElement("svg")
//单击"生成"按钮触发这个函数
function puzuDAIKAN() {
//获取各种参数
//小区名称
xiaoquNAME = document.querySelector("#leaseroot span.title").innerHTML.split("<")[0]
//居室
houseJUSHI = document.querySelector("#leaseroot div.img-ImgDesc > div.right > div > div.inner.inner-desc-center>div:nth-child(1)>div:nth-child(2)").textContent
//面积
houseMIANJI = document.querySelector("#leaseroot div.img-ImgDesc > div.right > div > div.inner.inner-desc-center>div:nth-child(2)>div:nth-child(2)").innerHTML.split(" ")[0]
//朝向
houseCHAOXIANG = document.querySelector("#leaseroot div.img-ImgDesc > div.right > div > div.inner.inner-desc-center>div:nth-child(3)>div:nth-child(2)").textContent
//入住时间
ruzhuTIME = document.querySelector("#leaseroot div.img-ImgDesc > div.right > div > div.inner-form-bottom > div > div:nth-child(5)").innerHTML.split("</span>")[1]
//租期要求
houseZUQI = "|" + document.querySelector("#leaseroot div.img-ImgDesc > div.right > div > div.inner-form-bottom > div > div:nth-child(7)").innerHTML.split("</span>")[1]
//如果租期要求为空
if (houseZUQI === "-") {
houseZUQI = "";
}
//获取楼层
if (document.querySelector("#leaseroot div.page-header-part > div.img-ImgDesc > div.right > div > div.inner.inner-desc-center > div.col.col-4 > div.key").textContent === "楼层") {
if (document.querySelector("#leaseroot div.img-ImgDesc > div.right > div > div.inner.inner-desc-center > div.col.col-4 > div.value.floor > span > span.floor-number") !== null) {
houseLOUCENG = "|" + document.querySelector("#leaseroot div.page-header-part > div.img-ImgDesc > div.right > div > div.inner.inner-desc-center > div.col.col-4 > div.value.floor > span").textContent
} else {
console.log("楼层129验证不通过,无法点击楼层")
}
} else {
console.log("楼层132验证不通过,无法点击楼层")
}
//价格
housePRICE = document.querySelector("#leaseroot div.price").textContent
//房源编号
houseCODE = document.querySelector("#leaseroot > div > div > div.ant-layout-content > div > div.house-detail-main > div.left-detail > div.header.flex.align-items > div > span").textContent.split(":")[1]
//有没有维护人,维护人是否存在
weihuPEOPLE_exists = document.querySelector("#leaseroot div.ant-collapse-content.ant-collapse-content-active > div > div > div:nth-child(2) > div >div").childElementCount === 2
console.log("维护人存在?")
if (weihuPEOPLE_exists) {
//维护人
weihuPEOPLE = document.querySelector("#leaseroot div.ant-collapse-content.ant-collapse-content-active > div > div > div:nth-child(2) > div> div > div.name").textContent
console.log("维护人姓名:" + weihuPEOPLE)
console.log(weihuPEOPLE.length)
//维护人门店
weihuPEOPLE_mendian = document.querySelector("#leaseroot div.ant-collapse-content.ant-collapse-content-active > div > div > div:nth-child(2) > div >div span.cct-ellipsis").textContent
}
//有没有钥匙人,钥匙人是否存在
yaoshiPEOPLE_exists = document.querySelector("#leaseroot div.ant-collapse-content.ant-collapse-content-active > div > div > div:nth-child(3) > div >div").childElementCount === 2
if (yaoshiPEOPLE_exists) {
//钥匙人
yaoshiPEOPLE = document.querySelector("#leaseroot div.ant-collapse-content.ant-collapse-content-active > div > div > div:nth-child(3) > div > div > div.name").textContent
//钥匙人门店
yaoshiPEOPLE_mendian = document.querySelector("#leaseroot div.ant-collapse-content.ant-collapse-content-active > div > div > div:nth-child(3) > div >div span.cct-ellipsis").textContent
}
//录入人
luruPEOPLE = document.querySelector("#leaseroot div.ant-collapse-content.ant-collapse-content-active > div > div > div:nth-child(1) > div> div > div.name").textContent
//录入人门店
luruPEOPLE_mendian = document.querySelector("#leaseroot div.ant-collapse-content.ant-collapse-content-active > div > div > div:nth-child(1) > div >div span.cct-ellipsis").textContent
//处理角色人信息
//如果维护人健在
console.log("维护人在吗?")
console.log(weihuPEOPLE_exists)
if (weihuPEOPLE_exists) {
// // console.log("维护人:" + weihuPEOPLE + "(" + weihuPEOPLE_mendian + ")")
juesePEOPLE001 = "维护人:" + weihuPEOPLE;
// juesePEOPLE001 = "维护人:" + weihuPEOPLE + "(" + weihuPEOPLE_mendian + ")"
}
//如果钥匙人健在
if (yaoshiPEOPLE_exists) {
//如果角色人1没出现
if (juesePEOPLE001.length === 2) {
juesePEOPLE001 = "--钥匙人:" + yaoshiPEOPLE;
// juesePEOPLE001 = "--钥匙人:" + yaoshiPEOPLE + "(" + weihuPEOPLE_mendian + ")"
//如果角色人2没出现
} else if (juesePEOPLE002.length === 2) {
juesePEOPLE002 = "--钥匙人:" + yaoshiPEOPLE;
// juesePEOPLE002 = "--钥匙人:" + yaoshiPEOPLE + "(" + weihuPEOPLE_mendian + ")"
}
}
//如果角色人1没出现
if (juesePEOPLE001.length === 2) {
juesePEOPLE001 = "录入人:" + luruPEOPLE;
// juesePEOPLE001 = "录入人:" + luruPEOPLE + "(" + luruPEOPLE_mendian + ")"
//如果角色人2没出现
} else if (juesePEOPLE002.length === 2) {
juesePEOPLE002 = "录入人:" + luruPEOPLE;
// juesePEOPLE002 = "录入人:" + luruPEOPLE + "(" + luruPEOPLE_mendian + ")"
}
//如果角色人1没出现
if (juesePEOPLE001.length === 2) {
juesePEOPLE001 = "---"
//如果角色人2没出现
}
if (juesePEOPLE002.length === 2) {
juesePEOPLE002 = "---"
}
//加入特制的普租style
document.querySelector("style").innerHTML += ".DaikanDIV {display: inline-block;background-color: #fff;padding: 10px;border: 2px solid #171717;height: 202px;position: fixed;top: 25%;left: 50%;transform: translateX(-50%);z-index: 99;/*overflow: hidden;*/}.DaiKanDan {width: 866px;height: 140px;/* background-color: #d01c1c; padding-top: 6px;*/padding-left: 13px;padding-right: 6px;display: flex;border-bottom: #eee 2px solid;}div.fengMian {width: 135px;}ul.infoUL {/*background-color: aqua;*/color: #1d1d1d;height: 136px;width: 555px;display: inline-block;padding-top: 0;padding-left: 12px;margin-top: 0;list-style: none;font-size: 18px;}ul.infoUL > li:nth-child(1) {color: #000;font-size: 25px;font-weight: 800;}ul.infoUL > li:nth-child(2) {margin-top: 0;position: relative;left: -2px;}ul.infoUL > li:nth-child(2) > span {padding: 0 2px;}ul.infoUL > li:nth-child(3) {padding-top: 0;}ul.infoUL > li:nth-child(4) {padding-top: 0;}ul.infoUL > li:nth-child(5) {padding-top: 5px;}ul.infoUL > li > div {/*background-color: yellow;*/display: inline-block;position: relative;/*left: 20px;*//*width: 3000px;*/}ul.infoUL > li > div > input {position: absolute;width: 206px;left: 7px;transform: translateY(-75%);border: none;/*background-color: yellow;*/}ul.infoUL > li:nth-child(1) > div > input {font-size: 24px;font-style: italic;font-weight: 500;/*background-color: yellow;*/}ul.infoUL > li:nth-child(2) > div > input {font-size: 18px;color: blue;left: -3px;}ul.infoUL > li:nth-child(3) > div > input {font-size: 18px;color: crimson;}ul.infoUL > li:nth-child(4) > div > input {font-size: 18px;color: #cdcd00;}ul.price {list-style: none;position: relative;top: -5px;color: red;line-height: 35px;}ul > li.price {font-size: 26px;font-weight: 800;}ul > li.erWM {position: relative;left: 1px;}ul > li.erWM > svg {position: relative;left: 52px;}div.okk {/*margin: auto;*/position: relative;}div.okk > button#closeInfo {font-size: 22px;width: 20%;height: 40px;position: absolute;right: -10px;bottom: -40px;/*transform: translateX(50%);*/}#houseBIANMA {position: relative;top: -19px;left: 26px;color: #000;font-size: 16px;} "
//加入新的body
document.body.innerHTML += "<div class=\"DaikanDIV\">"+
"<div style=\"background: rgba( 255, 255, 255, 0.25 );backdrop-filter: blur( 1px );-webkit-backdrop-filter: blur( 1.5px );position: fixed;top: -200px;left: -200px;height: 9999px;width: 1272px;z-index: -1;\"></div>"+
"<hr style=\"margin-bottom: 0;\"><div class=\"DaiKanDan\"><div class=\"fengMian\"><img width=\"100%\"src=\"https://vrlab-image4.ljcdn.com/release/auto3dhd/2547e39f88748e547992a88959c6cd33/screenshot/1693644757_0/pc1_mKj3kwxf4.jpg?imageMogr2/quality/70\"alt=\"\"></div><div>" +
"<ul class=\"infoUL\"><li>" + xiaoquNAME + "<div><input type=\"text\"></div></li><li><span>" + houseJUSHI + "</span>|<span>" + houseMIANJI + "㎡</span>|<span>" + houseCHAOXIANG + "</span>|<span>" + ruzhuTIME + "" + houseZUQI + "" + houseLOUCENG + "</span> <div><input type=\"text\"></div></li><li>" + juesePEOPLE001 + "<div><input type=\"text\"></div></li><li>" + juesePEOPLE002 + "<div><input type=\"text\"></div></li></ul></div>" +
"<ul class=\"price\"><li class=\"price\">" + housePRICE + "元/月</li><li class=\"erWM\">" +
"<svg id=\"svgERWEI\" width=\"80\" height=\"80\" viewBox=\"0 0 100 100\" xmlns=\"http://www.w3.org/2000/svg\"><!-- Created with Method Draw - http://github.com/duopixel/Method-Draw/ --><g><title>background</title><rect fill=\"#0fffff\" id=\"canvas_background\" height=\"102\" width=\"102\" y=\"-1\" x=\"-1\"/><g display=\"none\" overflow=\"visible\" y=\"0\" x=\"0\" height=\"100%\" width=\"100%\" id=\"canvasGrid\"><rect fill=\"url(#gridpattern)\" stroke-width=\"0\" y=\"0\" x=\"0\" height=\"100%\" width=\"100%\"/></g></g><g><title>Layer 1</title><text transform=\"rotate(-45 42.81383514404296,39.558170318603516) \" opacity=\"0.75\" xml:space=\"preserve\" text-anchor=\"start\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"37\" id=\"svg_1\" y=\"52.232558\" x=\"-1.372098\" stroke-width=\"0\" stroke=\"#000\" fill=\"#000000\">OMG</text><line stroke-linecap=\"undefined\" stroke-linejoin=\"undefined\" id=\"svg_15\" y2=\"264\" x2=\"-60.5\" y1=\"239\" x1=\"-60.5\" fill-opacity=\"null\" stroke-opacity=\"null\" stroke-width=\"99\" stroke=\"#000\" fill=\"none\"/><text opacity=\"0.75\" transform=\"rotate(135 60.4881935119629,57.2325439453125) \" xml:space=\"preserve\" text-anchor=\"start\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"37\" id=\"svg_16\" y=\"69.906928\" x=\"16.302272\" stroke-width=\"0\" stroke=\"#000\" fill=\"#000000\">OMG</text></g></svg>" +
"</li><div id=\"houseBIANMA\">" + houseCODE + "</div><hr style=\"position: absolute;bottom: -3px;right: -22px;\"></ul></div><div class=\"okk\"><button id=\"closeInfo\" class=\"closeInfo\" onclick=\"location.reload();for (let i = 0; i < document.getElementsByClassName('DaikanDIV').length + 1; i++) {document.getElementsByClassName('DaikanDIV')[0].remove();/*location.reload();*/}\">OK</button></div></div>"
//找到封面图片src
var fengmianSRC = document.querySelector("#leaseroot div.img-ImgDesc > div.left.pr > div > div.img-content-wrap > div.img-content > img:nth-child(1)").src
//创建img元素
const fengmian_DIV = document.createElement('img');
document.querySelector("div.fengMian > img").src = fengmianSRC;
//把房源二维码贴上去
document.querySelector("#svgERWEI").innerHTML = "";
// document.querySelector("#svgERWEI").append(document.querySelector("body > div:nth-child(10) > div > div > div > div.ant-popover-inner > div > div > svg"))
document.querySelector("#svgERWEI").append(hoseERWEI_new)
//删除工具窗口
//document.getElementsByClassName("Panel_DIV")[0].remove()
init()
}
//寻找房子二维码
var hoseERWEI = false;
setTimeout(findERWEI, 900);
function findERWEI() {
console.log("寻找房源二维码函数启动")
if (document.querySelector("#leaseroot div.page-header-part > div.img-ImgDesc > div.right > div > div.inner.inner-desc-center > div.col.col-4 > div.key").textContent === "楼层") {
if (document.querySelector("#leaseroot div.img-ImgDesc > div.right > div > div.inner.inner-desc-center > div.col.col-4 > div.value.floor > span > span") !== null) {
//获取楼层
document.querySelector("#leaseroot div.img-ImgDesc > div.right > div > div.inner.inner-desc-center > div.col.col-4 > div.value.floor > span > span").click()
} else {
console.log("楼层238验证不通过,无法点击楼层")
}
/*if (document.querySelector("#leaseroot div.img-ImgDesc > div.right > div > div.inner.inner-desc-center > div.col.col-4 > div.value.floor > span > span.S-txt-theme.cursorP") !== null) {
//获取楼层
document.querySelector("#leaseroot div.img-ImgDesc > div.right > div > div.inner.inner-desc-center > div.col.col-4 > div.value.floor > span > span.S-txt-theme.cursorP").click()
} else {
console.log("楼层238验证不通过,无法点击楼层")
}*/
} else {
console.log("楼层240验证不通过,无法点击楼层")
}
//点击暴露二维码
document.querySelector("#leaseroot > div > div > div.ant-layout-content > div > div.house-detail-main > div.left-detail > div.header.flex.align-items > div > div").click()
//房源二维码出现了没有
if (document.querySelector("div.ant-popover-inner-content>svg") != null) {
//if (document.querySelector("body > div:nth-child(10) > div > div > div > div.ant-popover-inner > div > div > svg") != null) {
hoseERWEI = true
hoseERWEI_new = document.querySelector("div.ant-popover-inner-content>svg")
//再次点击,关闭二维码
document.querySelector("#leaseroot > div > div > div.ant-layout-content > div > div.house-detail-main > div.left-detail > div.header.flex.align-items > div > div").click()
document.querySelector("#leaseroot > div > div > div.ant-layout-content > div > div.house-detail-main > div.left-detail > div.header.flex.align-items > div > div").click()
}else{
console.log("二维码不在271")
}
if (!hoseERWEI) {
setTimeout(findERWEI, 2000)
} else {
console.log("找到了!!")
document.querySelector("#Panel_DIV > button").style.backgroundColor="#ff0"
console.log(document.querySelector("div.ant-popover-inner-content>svg"))
}
}
})();