This commit is contained in:
manchuwork
2025-08-05 13:16:18 +08:00
commit f2f0e33b03
5 changed files with 4616 additions and 0 deletions

File diff suppressed because one or more lines are too long

633
script.txt Normal file
View File

@@ -0,0 +1,633 @@
// ==UserScript==
// @name View HTML Source & Company Info
// @namespace http://tampermonkey.net/
// @version 1.0
// @description 在所有网页添加按钮显示当前HTML源码并可复制
// @author Your Name *://*/*,
// @match https://aiqicha.baidu.com/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
// 创建主容器(修改版)
function createButtonContainer() {
const container = document.createElement('div');
container.id = 'tm-button-container';
container.style.position = 'fixed';
container.style.right = '20px';
container.style.bottom = '20px';
container.style.zIndex = '9999';
container.style.display = 'flex';
container.style.flexDirection = 'column';
container.style.gap = '10px';
container.style.transition = 'all 0.3s ease';
container.style.width = '40px'; // 初始宽度设为+号大小
container.style.overflow = 'hidden';
container.style.borderRadius = '50%';
container.style.backgroundColor = 'rgba(0,0,0,0.7)';
container.style.padding = '10px';
container.style.cursor = 'move';
// 添加悬浮效果
container.addEventListener('mouseenter', function() {
this.style.width = 'auto';
this.style.borderRadius = '5px';
});
container.addEventListener('mouseleave', function() {
this.style.width = '40px';
this.style.borderRadius = '50%';
});
// 添加拖动功能
let isDragging = false;
let offsetX, offsetY;
container.addEventListener('mousedown', function(e) {
isDragging = true;
offsetX = e.clientX - this.getBoundingClientRect().left;
offsetY = e.clientY - this.getBoundingClientRect().top;
this.style.cursor = 'grabbing';
});
document.addEventListener('mousemove', function(e) {
if (!isDragging) return;
const container = document.getElementById('tm-button-container');
container.style.left = (e.clientX - offsetX) + 'px';
container.style.top = (e.clientY - offsetY) + 'px';
container.style.right = 'auto';
container.style.bottom = 'auto';
});
document.addEventListener('mouseup', function() {
isDragging = false;
document.getElementById('tm-button-container').style.cursor = 'move';
});
// 创建+号指示器
const plusIndicator = document.createElement('div');
plusIndicator.textContent = '+';
plusIndicator.style.color = 'white';
plusIndicator.style.fontSize = '24px';
plusIndicator.style.textAlign = 'center';
plusIndicator.style.marginBottom = '10px';
plusIndicator.style.cursor = 'pointer';
// 点击+号也可以展开
plusIndicator.addEventListener('click', function() {
const container = document.getElementById('tm-button-container');
if (container.style.width === '40px') {
container.style.width = 'auto';
container.style.borderRadius = '5px';
} else {
container.style.width = '40px';
container.style.borderRadius = '50%';
}
});
container.appendChild(plusIndicator);
document.body.appendChild(container);
return container;
}
// 创建按钮(修改版)
function createButton(text, onClick) {
const button = document.createElement('button');
button.textContent = text;
button.style.backgroundColor = 'transparent';
button.style.color = 'white';
button.style.padding = '8px 12px';
button.style.border = '1px solid white';
button.style.borderRadius = '4px';
button.style.cursor = 'pointer';
button.style.marginBottom = '5px';
button.style.width = '100%';
button.style.transition = 'all 0.2s ease';
button.addEventListener('mouseenter', function() {
this.style.backgroundColor = 'rgba(255,255,255,0.2)';
});
button.addEventListener('mouseleave', function() {
this.style.backgroundColor = 'transparent';
});
button.addEventListener('click', onClick);
return button;
}
// 创建显示源码的按钮
function createSourceButton(container) {
const buttton = createButton('显示HTML源码',function(){
const html = document.documentElement.outerHTML;
copyToClipboard(html, 'HTML源码已复制到剪贴板');
})
container.appendChild(buttton)
return;
const button = document.createElement('button');
button.textContent = '显示HTML源码';
button.style.backgroundColor = '#4CAF50';
button.style.color = 'white';
button.style.padding = '10px 15px';
button.style.border = 'none';
button.style.borderRadius = '5px';
button.style.cursor = 'pointer';
button.style.boxShadow = '0 2px 5px rgba(0,0,0,0.2)';
button.addEventListener('click', function() {
const html = document.documentElement.outerHTML;
copyToClipboard(html, 'HTML源码已复制到剪贴板');
});
container.appendChild(button);
}
// 创建解析公司信息的按钮
function createParserButton(container) {
const button = createButton('解析公司信息',function(){
// 获取目标表格
const table = document.querySelector('table.zx-detail-basic-table');
if (!table) {
alert('未找到企业信息表格');
return;
}
// 解析表格数据
const companyData = {
"企业名称": getOptimizedValue(table, "企业名称"),
"统一社会信用代码": getUnifiedSocialCreditCode(table, "统一社会信用代码"),
"法定代表人": getLegalRepresentative(table, "法定代表人"),
"经营状态": getOptimizedValue(table, "经营状态"),
"成立日期": getOptimizedValue(table, "成立日期"),
"行政区划": getOptimizedValue(table, "行政区划"),
"注册资本": getOptimizedValue(table, "注册资本"),
"实缴资本": getOptimizedValue(table, "实缴资本"),
"企业类型": getOptimizedValue(table, "企业类型"),
"所属行业": getOptimizedValue(table, "所属行业"),
"工商注册号": getBusinessRegistrationNo(table, "工商注册号"),
"组织机构代码": getOrganizationCode(table),
"纳税人识别号": getTaxpayerId(table, "纳税人识别号"),
"纳税人资质": getOptimizedValue(table, "纳税人资质"),
"营业期限": getOptimizedValue(table, "营业期限"),
"核准日期": getApprovalDate(table, "核准日期"),
"参保人数": getInsuranceNumber(table, "参保人数"),
"登记机关": getOptimizedValue(table, "登记机关"),
"曾用名": getOptimizedValue(table, "曾用名"),
"注册地址": getOptimizedValue(table, "注册地址"),
"经营范围": getOptimizedValue(table, "经营范围")
};
// 显示解析结果
showResult(companyData);
})
container.appendChild(button)
return;
//const button = document.createElement('button');
button.textContent = '解析公司信息';
button.style.backgroundColor = '#2196F3';
button.style.color = 'white';
button.style.padding = '10px 15px';
button.style.border = 'none';
button.style.borderRadius = '5px';
button.style.cursor = 'pointer';
button.style.boxShadow = '0 2px 5px rgba(0,0,0,0.2)';
button.addEventListener('click', function() {
try {
const companyInfo = parseCompanyInfo(document.documentElement.outerHTML);
const jsonStr = JSON.stringify(companyInfo, null, 2);
copyToClipboard(jsonStr, '公司信息已复制到剪贴板');
} catch (e) {
alert('解析失败: ' + e.message);
}
// 获取目标表格
const table = document.querySelector('table.zx-detail-basic-table');
if (!table) {
alert('未找到企业信息表格');
return;
}
// 解析表格数据
const companyData = {
"企业名称": getOptimizedValue(table, "企业名称"),
"统一社会信用代码": getUnifiedSocialCreditCode(table, "统一社会信用代码"),
"法定代表人": getLegalRepresentative(table, "法定代表人"),
"经营状态": getOptimizedValue(table, "经营状态"),
"成立日期": getOptimizedValue(table, "成立日期"),
"行政区划": getOptimizedValue(table, "行政区划"),
"注册资本": getOptimizedValue(table, "注册资本"),
"实缴资本": getOptimizedValue(table, "实缴资本"),
"企业类型": getOptimizedValue(table, "企业类型"),
"所属行业": getOptimizedValue(table, "所属行业"),
"工商注册号": getBusinessRegistrationNo(table, "工商注册号"),
"组织机构代码": getOrganizationCode(table),
"纳税人识别号": getTaxpayerId(table, "纳税人识别号"),
"纳税人资质": getOptimizedValue(table, "纳税人资质"),
"营业期限": getOptimizedValue(table, "营业期限"),
"核准日期": getApprovalDate(table, "核准日期"),
"参保人数": getInsuranceNumber(table, "参保人数"),
"登记机关": getOptimizedValue(table, "登记机关"),
"曾用名": getOptimizedValue(table, "曾用名"),
"注册地址": getOptimizedValue(table, "注册地址"),
"经营范围": getOptimizedValue(table, "经营范围")
};
// 显示解析结果
showResult(companyData);
});
container.appendChild(button);
}
// 法定代表人提取方法(优化版)
function getLegalRepresentative(table) {
// 方法1通过特定class组合定位
const legalElements = Array.from(table.querySelectorAll('td')).filter(td =>
cleanText(td.textContent) === '法定代表人'
);
if (legalElements.length > 0) {
const valueCell = legalElements[0].nextElementSibling;
if (valueCell && valueCell.classList.contains('image-text-content')) {
// 从包含头像的复杂结构中提取姓名
const nameElement = valueCell.querySelector('.person-name-warp a');
if (nameElement) {
return cleanText(nameElement.textContent);
}
// 备用方案:直接提取单元格文本
return cleanText(valueCell.textContent);
}
}
// 方法2通过标题文本定位备用方案
const titleElements = Array.from(table.querySelectorAll('td')).filter(td =>
td.textContent.includes('法定代表人')
);
if (titleElements.length > 0 && titleElements[0].nextElementSibling) {
const valueCell = titleElements[0].nextElementSibling;
return cleanText(valueCell.textContent);
}
return null;
}
// 核准日期提取方法(优化版)
function getApprovalDate(table) {
// 方法1通过特定class组合定位
const approvalElements = Array.from(table.querySelectorAll('.poptip-wrap-annual-date')).filter(el =>
el.textContent.includes('核准日期')
);
if (approvalElements.length > 0) {
const valueCell = approvalElements[0].closest('td').nextElementSibling;
if (valueCell) {
const rawValue = valueCell.textContent.replace(/[\r\n\t]/g, '').trim();
// 验证日期格式
if (/^\d{4}-\d{2}-\d{2}$/.test(rawValue)) {
return rawValue;
}
}
}
// 方法2通过标题文本定位
const titleElements = Array.from(table.querySelectorAll('td')).filter(td =>
cleanText(td.textContent) === '核准日期'
);
if (titleElements.length > 0 && titleElements[0].nextElementSibling) {
const valueCell = titleElements[0].nextElementSibling;
const rawValue = cleanText(valueCell.textContent);
if (/^\d{4}-\d{2}-\d{2}$/.test(rawValue)) {
return rawValue;
}
}
return null;
}
// 组织机构代码提取方法
function getOrganizationCode(table) {
// 方法1通过特定class组合定位
const orgCodeElements = Array.from(table.querySelectorAll('.poptip-wrap-org-no')).filter(el =>
el.textContent.includes('组织机构代码')
);
if (orgCodeElements.length > 0) {
const valueCell = orgCodeElements[0].closest('td').nextElementSibling;
if (valueCell && valueCell.classList.contains('enter-bg')) {
const rawValue = valueCell.querySelector('.enter-bg-ele')?.textContent || valueCell.textContent;
return cleanText(rawValue);
}
}
// 方法2通过标题文本定位
const titleElements = Array.from(table.querySelectorAll('td')).filter(td =>
cleanText(td.textContent) === '组织机构代码'
);
if (titleElements.length > 0 && titleElements[0].nextElementSibling) {
const valueCell = titleElements[0].nextElementSibling;
const rawValue = valueCell.querySelector('.enter-bg-ele')?.textContent || valueCell.textContent;
return cleanText(rawValue);
}
return null;
}
// 纳税人识别号提取方法
function getTaxpayerId(table) {
// 方法1尝试直接获取纳税人识别号
const taxElements = Array.from(table.querySelectorAll('td')).filter(td =>
cleanText(td.textContent).includes('纳税人识别号')
);
if (taxElements.length > 0 && taxElements[0].nextElementSibling) {
const valueCell = taxElements[0].nextElementSibling;
const rawValue = valueCell.querySelector('.enter-bg-ele')?.textContent || valueCell.textContent;
return cleanText(rawValue);
}
// 方法2使用统一社会信用代码通常与纳税人识别号相同
const creditElements = Array.from(table.querySelectorAll('td')).filter(td =>
cleanText(td.textContent).includes('统一社会信用代码')
);
if (creditElements.length > 0 && creditElements[0].nextElementSibling) {
const valueCell = creditElements[0].nextElementSibling;
const rawValue = valueCell.querySelector('.enter-bg-ele')?.textContent || valueCell.textContent;
return cleanText(rawValue);
}
return null;
}
// 工商注册号提取方法
function getBusinessRegistrationNo(table) {
const regElements = Array.from(table.querySelectorAll('td')).filter(td =>
cleanText(td.textContent).includes('工商注册号')
);
if (regElements.length > 0 && regElements[0].nextElementSibling) {
const valueCell = regElements[0].nextElementSibling;
const rawValue = valueCell.querySelector('.enter-bg-ele')?.textContent || valueCell.textContent;
return cleanText(rawValue);
}
return null;
}
// 专用参保人数提取方法
function getInsuranceNumber(table) {
// 方法1通过标题和特定class组合定位
const insuranceElements = Array.from(table.querySelectorAll('td')).filter(td => {
return td.textContent.includes('参保人数') &&
td.querySelector('.insurance-info');
});
if (insuranceElements.length > 0) {
const valueCell = insuranceElements[0].nextElementSibling;
if (!valueCell) return null;
// 提取纯文本内容过滤掉img标签
const rawText = valueCell.textContent.replace(/[\r\n\t]/g, '').trim();
// 匹配"数字+人"格式
const match = rawText.match(/(\d+人)/);
return match ? match[0] : null;
}
// 方法2备用方案通过相邻单元格内容定位
const registrationElements = Array.from(table.querySelectorAll('td')).filter(td =>
td.textContent.includes('登记机关')
);
if (registrationElements.length > 0 && registrationElements[0].previousElementSibling) {
const valueCell = registrationElements[0].previousElementSibling;
const rawText = valueCell.textContent.replace(/[\r\n\t]/g, '').trim();
const match = rawText.match(/(\d+人)/);
return match ? match[0] : null;
}
return null;
}
// 优化后的统一社会信用代码提取方法
function getUnifiedSocialCreditCode(table) {
// 方法1直接通过标题定位
const codeElements = Array.from(table.querySelectorAll('td')).filter(td => {
return td.textContent.includes('统一社会信用代码') &&
td.nextElementSibling &&
td.nextElementSibling.classList.contains('table-regCapital-lable');
});
if (codeElements.length > 0) {
const valueCell = codeElements[0].nextElementSibling;
const rawValue = valueCell.querySelector('.enter-bg-ele')?.textContent || valueCell.textContent;
return cleanText(rawValue);
}
// 方法2备用方案通过纳税人识别号获取通常与统一社会信用代码相同
const taxElements = Array.from(table.querySelectorAll('td')).filter(td =>
td.textContent.includes('纳税人识别号')
);
if (taxElements.length > 0 && taxElements[0].nextElementSibling) {
const valueCell = taxElements[0].nextElementSibling;
const rawValue = valueCell.querySelector('.enter-bg-ele')?.textContent || valueCell.textContent;
return cleanText(rawValue);
}
return null;
}
// 通用优化字段提取方法
function getOptimizedValue(table, title) {
const cells = Array.from(table.querySelectorAll('td'));
const titleCell = cells.find(cell => cleanText(cell.textContent) === title);
if (!titleCell) return null;
// 查找值单元格考虑多种DOM结构情况
let valueCell = titleCell.nextElementSibling;
if (!valueCell) return null;
// 优先提取.enter-bg-ele内的值若无则直接取单元格文本
const valueElement = valueCell.querySelector('.enter-bg-ele') ||
valueCell.querySelector('.addr-enter-bg-ele') ||
valueCell;
return cleanText(valueElement.textContent);
}
// 文本清理函数
function cleanText(text) {
return text.replace(/\s+/g, ' ').replace(/[\r\n\t]/g, '').trim();
}
// 辅助函数:显示解析结果
function showResult(data) {
// 创建弹窗
const modal = document.createElement('div');
modal.style.position = 'fixed';
modal.style.top = '50%';
modal.style.left = '50%';
modal.style.transform = 'translate(-50%, -50%)';
modal.style.width = '600px';
modal.style.maxHeight = '80vh';
modal.style.overflowY = 'auto';
modal.style.backgroundColor = 'white';
modal.style.padding = '20px';
modal.style.boxShadow = '0 0 10px rgba(0,0,0,0.3)';
modal.style.zIndex = '10000';
// 创建JSON显示区域
const pre = document.createElement('pre');
pre.textContent = JSON.stringify(data, null, 2);
pre.style.whiteSpace = 'pre-wrap';
pre.style.wordWrap = 'break-word';
// 创建复制按钮
const copyBtn = document.createElement('button');
copyBtn.textContent = '复制JSON';
copyBtn.style.marginTop = '10px';
copyBtn.style.padding = '8px 16px';
copyBtn.style.backgroundColor = '#52c41a';
copyBtn.style.color = 'white';
copyBtn.style.border = 'none';
copyBtn.style.borderRadius = '4px';
copyBtn.style.cursor = 'pointer';
copyBtn.addEventListener('click', function() {
navigator.clipboard.writeText(JSON.stringify(data, null, 2))
.then(() => alert('已复制到剪贴板'))
.catch(err => alert('复制失败: ' + err));
});
// 创建关闭按钮
const closeBtn = document.createElement('button');
closeBtn.textContent = '关闭';
closeBtn.style.marginLeft = '10px';
closeBtn.style.marginTop = '10px';
closeBtn.style.padding = '8px 16px';
closeBtn.style.backgroundColor = '#f5222d';
closeBtn.style.color = 'white';
closeBtn.style.border = 'none';
closeBtn.style.borderRadius = '4px';
closeBtn.style.cursor = 'pointer';
closeBtn.addEventListener('click', function() {
document.body.removeChild(modal);
});
// 组装弹窗内容
modal.innerHTML = '<h2 style="margin-top: 0;">企业信息解析结果</h2>';
modal.appendChild(pre);
modal.appendChild(document.createElement('br'));
modal.appendChild(copyBtn);
modal.appendChild(closeBtn);
document.body.appendChild(modal);
}
// 解析公司信息函数
function parseCompanyInfo(html) {
// 创建临时DOM解析器
const parser = new DOMParser();
const doc = parser.parseFromString(html, 'text/html');
// 常见公司信息字段解析
const companyInfo = {
name: extractText(doc, [
'.company-name',
'.company-title',
'h1',
'title'
]),
socialCreditCodeText: extractText(doc,[
'.social-credit-code-text'
]),
legalRepresentative: extractText(doc, [
'.legal-representative span.a',
'.legal-person',
'[itemprop="founder"]'
]),
registeredCapital: extractText(doc, [
'.registered-capital',
'.capital',
'[itemprop="foundingFund"]'
]),
registrationDate: extractText(doc, [
'.registration-date',
'.establish-date',
'[itemprop="foundingDate"]'
]),
businessScope: extractText(doc, [
'.business-scope',
'.scope',
'[itemprop="knowsAbout"]'
]),
address: extractText(doc, [
'.addr-enter-bg-ele',
'.company-address',
'.address',
'[itemprop="address"]'
]),
phone: extractText(doc, [
'[data-log-title="detail-head-phone"] span',
'.company-phone',
'.contact-phone',
'[itemprop="telephone"]'
])
};
return companyInfo;
}
// 辅助函数:从多个可能的选择器中提取文本
function extractText(doc, selectors) {
for (const selector of selectors) {
const element = doc.querySelector(selector);
if (element && element.textContent.trim()) {
return element.textContent.trim();
}
}
return '';
}
// 辅助函数:复制到剪贴板
function copyToClipboard(content, successMessage) {
const textarea = document.createElement('textarea');
textarea.value = content;
textarea.style.position = 'fixed';
textarea.style.top = '0';
textarea.style.left = '0';
textarea.style.width = '1px';
textarea.style.height = '1px';
textarea.style.opacity = '0';
document.body.appendChild(textarea);
textarea.select();
document.execCommand('copy');
document.body.removeChild(textarea);
if (successMessage) {
alert(successMessage);
}
}
// 初始化
const container = createButtonContainer();
createSourceButton(container);
createParserButton(container);
})();

642
script1.txt Normal file
View File

@@ -0,0 +1,642 @@
// ==UserScript==
// @name View HTML Source & Company Info
// @namespace http://tampermonkey.net/
// @version 1.0
// @description 在所有网页添加按钮显示当前HTML源码并可复制
// @author Your Name *://*/*,
// @match https://aiqicha.baidu.com/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
// 创建主容器(修改版)
function createButtonContainer() {
const container = document.createElement('div');
container.id = 'tm-button-container';
container.style.position = 'fixed';
container.style.right = '20px';
container.style.bottom = '20px';
container.style.zIndex = '9999';
container.style.display = 'flex';
container.style.flexDirection = 'column';
container.style.gap = '10px';
container.style.transition = 'all 0.3s ease';
container.style.width = '40px';
container.style.height = '40px';
container.style.overflow = 'hidden';
container.style.borderRadius = '50%';
container.style.backgroundColor = 'rgba(0,0,0,0.7)';
container.style.padding = '0';
container.style.cursor = 'move';
container.style.alignItems = 'center';
container.style.justifyContent = 'center';
// 创建+号指示器
const plusIndicator = document.createElement('div');
plusIndicator.textContent = '+';
plusIndicator.style.color = 'white';
plusIndicator.style.fontSize = '24px';
plusIndicator.style.textAlign = 'center';
plusIndicator.style.cursor = 'pointer';
plusIndicator.style.width = '100%';
plusIndicator.style.height = '100%';
plusIndicator.style.display = 'flex';
plusIndicator.style.alignItems = 'center';
plusIndicator.style.justifyContent = 'center';
// 存储按钮引用
let buttons = [];
// 鼠标悬停加号时显示按钮
plusIndicator.addEventListener('mouseenter', function() {
container.style.width = 'auto';
container.style.height = 'auto';
container.style.padding = '10px';
container.style.borderRadius = '5px';
buttons.forEach(btn => btn.style.display = 'block');
});
// 鼠标移出容器时隐藏按钮
container.addEventListener('mouseleave', function() {
container.style.width = '40px';
container.style.height = '40px';
container.style.padding = '0';
container.style.borderRadius = '50%';
buttons.forEach(btn => btn.style.display = 'none');
});
// 点击+号也可以切换按钮显示
plusIndicator.addEventListener('click', function() {
const isExpanded = container.style.width !== '40px';
if (isExpanded) {
container.style.width = '40px';
container.style.height = '40px';
container.style.padding = '0';
container.style.borderRadius = '50%';
buttons.forEach(btn => btn.style.display = 'none');
} else {
container.style.width = 'auto';
container.style.height = 'auto';
container.style.padding = '10px';
container.style.borderRadius = '5px';
buttons.forEach(btn => btn.style.display = 'block');
}
});
// 添加拖动功能...
container.appendChild(plusIndicator);
document.body.appendChild(container);
// 返回容器和按钮引用存储
return {
container,
addButton: function(button) {
button.style.display = 'none'; // 初始隐藏按钮
buttons.push(button);
container.appendChild(button);
}
};
}
// 创建按钮(修改版)
function createButton(text, onClick) {
const button = document.createElement('button');
button.textContent = text;
button.style.backgroundColor = 'transparent';
button.style.color = 'white';
button.style.padding = '8px 12px';
button.style.border = '1px solid white';
button.style.borderRadius = '4px';
button.style.cursor = 'pointer';
button.style.marginBottom = '5px';
button.style.width = '100%';
button.style.transition = 'all 0.2s ease';
button.style.minWidth = '120px';
button.addEventListener('mouseenter', function() {
this.style.backgroundColor = 'rgba(255,255,255,0.2)';
});
button.addEventListener('mouseleave', function() {
this.style.backgroundColor = 'transparent';
});
button.addEventListener('click', onClick);
return button;
}
// 创建显示源码的按钮
function createSourceButton(container) {
const buttton = createButton('显示HTML源码',function(){
const html = document.documentElement.outerHTML;
copyToClipboard(html, 'HTML源码已复制到剪贴板');
})
//container.appendChild(buttton)
return;
const button = document.createElement('button');
button.textContent = '显示HTML源码';
button.style.backgroundColor = '#4CAF50';
button.style.color = 'white';
button.style.padding = '10px 15px';
button.style.border = 'none';
button.style.borderRadius = '5px';
button.style.cursor = 'pointer';
button.style.boxShadow = '0 2px 5px rgba(0,0,0,0.2)';
button.addEventListener('click', function() {
const html = document.documentElement.outerHTML;
copyToClipboard(html, 'HTML源码已复制到剪贴板');
});
container.appendChild(button);
}
// 创建解析公司信息的按钮
function createParserButton(container) {
const button = createButton('解析公司信息',function(){
// 获取目标表格
const table = document.querySelector('table.zx-detail-basic-table');
if (!table) {
alert('未找到企业信息表格');
return;
}
// 解析表格数据
const companyData = {
"企业名称": getOptimizedValue(table, "企业名称"),
"统一社会信用代码": getUnifiedSocialCreditCode(table, "统一社会信用代码"),
"法定代表人": getLegalRepresentative(table, "法定代表人"),
"经营状态": getOptimizedValue(table, "经营状态"),
"成立日期": getOptimizedValue(table, "成立日期"),
"行政区划": getOptimizedValue(table, "行政区划"),
"注册资本": getOptimizedValue(table, "注册资本"),
"实缴资本": getOptimizedValue(table, "实缴资本"),
"企业类型": getOptimizedValue(table, "企业类型"),
"所属行业": getOptimizedValue(table, "所属行业"),
"工商注册号": getBusinessRegistrationNo(table, "工商注册号"),
"组织机构代码": getOrganizationCode(table),
"纳税人识别号": getTaxpayerId(table, "纳税人识别号"),
"纳税人资质": getOptimizedValue(table, "纳税人资质"),
"营业期限": getOptimizedValue(table, "营业期限"),
"核准日期": getApprovalDate(table, "核准日期"),
"参保人数": getInsuranceNumber(table, "参保人数"),
"登记机关": getOptimizedValue(table, "登记机关"),
"曾用名": getOptimizedValue(table, "曾用名"),
"注册地址": getOptimizedValue(table, "注册地址"),
"经营范围": getOptimizedValue(table, "经营范围")
};
// 显示解析结果
showResult(companyData);
})
container.appendChild(button)
return;
//const button = document.createElement('button');
button.textContent = '解析公司信息';
button.style.backgroundColor = '#2196F3';
button.style.color = 'white';
button.style.padding = '10px 15px';
button.style.border = 'none';
button.style.borderRadius = '5px';
button.style.cursor = 'pointer';
button.style.boxShadow = '0 2px 5px rgba(0,0,0,0.2)';
button.addEventListener('click', function() {
try {
const companyInfo = parseCompanyInfo(document.documentElement.outerHTML);
const jsonStr = JSON.stringify(companyInfo, null, 2);
copyToClipboard(jsonStr, '公司信息已复制到剪贴板');
} catch (e) {
alert('解析失败: ' + e.message);
}
// 获取目标表格
const table = document.querySelector('table.zx-detail-basic-table');
if (!table) {
alert('未找到企业信息表格');
return;
}
// 解析表格数据
const companyData = {
"企业名称": getOptimizedValue(table, "企业名称"),
"统一社会信用代码": getUnifiedSocialCreditCode(table, "统一社会信用代码"),
"法定代表人": getLegalRepresentative(table, "法定代表人"),
"经营状态": getOptimizedValue(table, "经营状态"),
"成立日期": getOptimizedValue(table, "成立日期"),
"行政区划": getOptimizedValue(table, "行政区划"),
"注册资本": getOptimizedValue(table, "注册资本"),
"实缴资本": getOptimizedValue(table, "实缴资本"),
"企业类型": getOptimizedValue(table, "企业类型"),
"所属行业": getOptimizedValue(table, "所属行业"),
"工商注册号": getBusinessRegistrationNo(table, "工商注册号"),
"组织机构代码": getOrganizationCode(table),
"纳税人识别号": getTaxpayerId(table, "纳税人识别号"),
"纳税人资质": getOptimizedValue(table, "纳税人资质"),
"营业期限": getOptimizedValue(table, "营业期限"),
"核准日期": getApprovalDate(table, "核准日期"),
"参保人数": getInsuranceNumber(table, "参保人数"),
"登记机关": getOptimizedValue(table, "登记机关"),
"曾用名": getOptimizedValue(table, "曾用名"),
"注册地址": getOptimizedValue(table, "注册地址"),
"经营范围": getOptimizedValue(table, "经营范围")
};
// 显示解析结果
showResult(companyData);
});
container.appendChild(button);
}
// 法定代表人提取方法(优化版)
function getLegalRepresentative(table) {
// 方法1通过特定class组合定位
const legalElements = Array.from(table.querySelectorAll('td')).filter(td =>
cleanText(td.textContent) === '法定代表人'
);
if (legalElements.length > 0) {
const valueCell = legalElements[0].nextElementSibling;
if (valueCell && valueCell.classList.contains('image-text-content')) {
// 从包含头像的复杂结构中提取姓名
const nameElement = valueCell.querySelector('.person-name-warp a');
if (nameElement) {
return cleanText(nameElement.textContent);
}
// 备用方案:直接提取单元格文本
return cleanText(valueCell.textContent);
}
}
// 方法2通过标题文本定位备用方案
const titleElements = Array.from(table.querySelectorAll('td')).filter(td =>
td.textContent.includes('法定代表人')
);
if (titleElements.length > 0 && titleElements[0].nextElementSibling) {
const valueCell = titleElements[0].nextElementSibling;
return cleanText(valueCell.textContent);
}
return null;
}
// 核准日期提取方法(优化版)
function getApprovalDate(table) {
// 方法1通过特定class组合定位
const approvalElements = Array.from(table.querySelectorAll('.poptip-wrap-annual-date')).filter(el =>
el.textContent.includes('核准日期')
);
if (approvalElements.length > 0) {
const valueCell = approvalElements[0].closest('td').nextElementSibling;
if (valueCell) {
const rawValue = valueCell.textContent.replace(/[\r\n\t]/g, '').trim();
// 验证日期格式
if (/^\d{4}-\d{2}-\d{2}$/.test(rawValue)) {
return rawValue;
}
}
}
// 方法2通过标题文本定位
const titleElements = Array.from(table.querySelectorAll('td')).filter(td =>
cleanText(td.textContent) === '核准日期'
);
if (titleElements.length > 0 && titleElements[0].nextElementSibling) {
const valueCell = titleElements[0].nextElementSibling;
const rawValue = cleanText(valueCell.textContent);
if (/^\d{4}-\d{2}-\d{2}$/.test(rawValue)) {
return rawValue;
}
}
return null;
}
// 组织机构代码提取方法
function getOrganizationCode(table) {
// 方法1通过特定class组合定位
const orgCodeElements = Array.from(table.querySelectorAll('.poptip-wrap-org-no')).filter(el =>
el.textContent.includes('组织机构代码')
);
if (orgCodeElements.length > 0) {
const valueCell = orgCodeElements[0].closest('td').nextElementSibling;
if (valueCell && valueCell.classList.contains('enter-bg')) {
const rawValue = valueCell.querySelector('.enter-bg-ele')?.textContent || valueCell.textContent;
return cleanText(rawValue);
}
}
// 方法2通过标题文本定位
const titleElements = Array.from(table.querySelectorAll('td')).filter(td =>
cleanText(td.textContent) === '组织机构代码'
);
if (titleElements.length > 0 && titleElements[0].nextElementSibling) {
const valueCell = titleElements[0].nextElementSibling;
const rawValue = valueCell.querySelector('.enter-bg-ele')?.textContent || valueCell.textContent;
return cleanText(rawValue);
}
return null;
}
// 纳税人识别号提取方法
function getTaxpayerId(table) {
// 方法1尝试直接获取纳税人识别号
const taxElements = Array.from(table.querySelectorAll('td')).filter(td =>
cleanText(td.textContent).includes('纳税人识别号')
);
if (taxElements.length > 0 && taxElements[0].nextElementSibling) {
const valueCell = taxElements[0].nextElementSibling;
const rawValue = valueCell.querySelector('.enter-bg-ele')?.textContent || valueCell.textContent;
return cleanText(rawValue);
}
// 方法2使用统一社会信用代码通常与纳税人识别号相同
const creditElements = Array.from(table.querySelectorAll('td')).filter(td =>
cleanText(td.textContent).includes('统一社会信用代码')
);
if (creditElements.length > 0 && creditElements[0].nextElementSibling) {
const valueCell = creditElements[0].nextElementSibling;
const rawValue = valueCell.querySelector('.enter-bg-ele')?.textContent || valueCell.textContent;
return cleanText(rawValue);
}
return null;
}
// 工商注册号提取方法
function getBusinessRegistrationNo(table) {
const regElements = Array.from(table.querySelectorAll('td')).filter(td =>
cleanText(td.textContent).includes('工商注册号')
);
if (regElements.length > 0 && regElements[0].nextElementSibling) {
const valueCell = regElements[0].nextElementSibling;
const rawValue = valueCell.querySelector('.enter-bg-ele')?.textContent || valueCell.textContent;
return cleanText(rawValue);
}
return null;
}
// 专用参保人数提取方法
function getInsuranceNumber(table) {
// 方法1通过标题和特定class组合定位
const insuranceElements = Array.from(table.querySelectorAll('td')).filter(td => {
return td.textContent.includes('参保人数') &&
td.querySelector('.insurance-info');
});
if (insuranceElements.length > 0) {
const valueCell = insuranceElements[0].nextElementSibling;
if (!valueCell) return null;
// 提取纯文本内容过滤掉img标签
const rawText = valueCell.textContent.replace(/[\r\n\t]/g, '').trim();
// 匹配"数字+人"格式
const match = rawText.match(/(\d+人)/);
return match ? match[0] : null;
}
// 方法2备用方案通过相邻单元格内容定位
const registrationElements = Array.from(table.querySelectorAll('td')).filter(td =>
td.textContent.includes('登记机关')
);
if (registrationElements.length > 0 && registrationElements[0].previousElementSibling) {
const valueCell = registrationElements[0].previousElementSibling;
const rawText = valueCell.textContent.replace(/[\r\n\t]/g, '').trim();
const match = rawText.match(/(\d+人)/);
return match ? match[0] : null;
}
return null;
}
// 优化后的统一社会信用代码提取方法
function getUnifiedSocialCreditCode(table) {
// 方法1直接通过标题定位
const codeElements = Array.from(table.querySelectorAll('td')).filter(td => {
return td.textContent.includes('统一社会信用代码') &&
td.nextElementSibling &&
td.nextElementSibling.classList.contains('table-regCapital-lable');
});
if (codeElements.length > 0) {
const valueCell = codeElements[0].nextElementSibling;
const rawValue = valueCell.querySelector('.enter-bg-ele')?.textContent || valueCell.textContent;
return cleanText(rawValue);
}
// 方法2备用方案通过纳税人识别号获取通常与统一社会信用代码相同
const taxElements = Array.from(table.querySelectorAll('td')).filter(td =>
td.textContent.includes('纳税人识别号')
);
if (taxElements.length > 0 && taxElements[0].nextElementSibling) {
const valueCell = taxElements[0].nextElementSibling;
const rawValue = valueCell.querySelector('.enter-bg-ele')?.textContent || valueCell.textContent;
return cleanText(rawValue);
}
return null;
}
// 通用优化字段提取方法
function getOptimizedValue(table, title) {
const cells = Array.from(table.querySelectorAll('td'));
const titleCell = cells.find(cell => cleanText(cell.textContent) === title);
if (!titleCell) return null;
// 查找值单元格考虑多种DOM结构情况
let valueCell = titleCell.nextElementSibling;
if (!valueCell) return null;
// 优先提取.enter-bg-ele内的值若无则直接取单元格文本
const valueElement = valueCell.querySelector('.enter-bg-ele') ||
valueCell.querySelector('.addr-enter-bg-ele') ||
valueCell;
return cleanText(valueElement.textContent);
}
// 文本清理函数
function cleanText(text) {
return text.replace(/\s+/g, ' ').replace(/[\r\n\t]/g, '').trim();
}
// 辅助函数:显示解析结果
function showResult(data) {
// 创建弹窗
const modal = document.createElement('div');
modal.style.position = 'fixed';
modal.style.top = '50%';
modal.style.left = '50%';
modal.style.transform = 'translate(-50%, -50%)';
modal.style.width = '600px';
modal.style.maxHeight = '80vh';
modal.style.overflowY = 'auto';
modal.style.backgroundColor = 'white';
modal.style.padding = '20px';
modal.style.boxShadow = '0 0 10px rgba(0,0,0,0.3)';
modal.style.zIndex = '10000';
// 创建JSON显示区域
const pre = document.createElement('pre');
pre.textContent = JSON.stringify(data, null, 2);
pre.style.whiteSpace = 'pre-wrap';
pre.style.wordWrap = 'break-word';
// 创建复制按钮
const copyBtn = document.createElement('button');
copyBtn.textContent = '复制JSON';
copyBtn.style.marginTop = '10px';
copyBtn.style.padding = '8px 16px';
copyBtn.style.backgroundColor = '#52c41a';
copyBtn.style.color = 'white';
copyBtn.style.border = 'none';
copyBtn.style.borderRadius = '4px';
copyBtn.style.cursor = 'pointer';
copyBtn.addEventListener('click', function() {
navigator.clipboard.writeText(JSON.stringify(data, null, 2))
.then(() => alert('已复制到剪贴板'))
.catch(err => alert('复制失败: ' + err));
});
// 创建关闭按钮
const closeBtn = document.createElement('button');
closeBtn.textContent = '关闭';
closeBtn.style.marginLeft = '10px';
closeBtn.style.marginTop = '10px';
closeBtn.style.padding = '8px 16px';
closeBtn.style.backgroundColor = '#f5222d';
closeBtn.style.color = 'white';
closeBtn.style.border = 'none';
closeBtn.style.borderRadius = '4px';
closeBtn.style.cursor = 'pointer';
closeBtn.addEventListener('click', function() {
document.body.removeChild(modal);
});
// 组装弹窗内容
modal.innerHTML = '<h2 style="margin-top: 0;">企业信息解析结果</h2>';
modal.appendChild(pre);
modal.appendChild(document.createElement('br'));
modal.appendChild(copyBtn);
modal.appendChild(closeBtn);
document.body.appendChild(modal);
}
// 解析公司信息函数
function parseCompanyInfo(html) {
// 创建临时DOM解析器
const parser = new DOMParser();
const doc = parser.parseFromString(html, 'text/html');
// 常见公司信息字段解析
const companyInfo = {
name: extractText(doc, [
'.company-name',
'.company-title',
'h1',
'title'
]),
socialCreditCodeText: extractText(doc,[
'.social-credit-code-text'
]),
legalRepresentative: extractText(doc, [
'.legal-representative span.a',
'.legal-person',
'[itemprop="founder"]'
]),
registeredCapital: extractText(doc, [
'.registered-capital',
'.capital',
'[itemprop="foundingFund"]'
]),
registrationDate: extractText(doc, [
'.registration-date',
'.establish-date',
'[itemprop="foundingDate"]'
]),
businessScope: extractText(doc, [
'.business-scope',
'.scope',
'[itemprop="knowsAbout"]'
]),
address: extractText(doc, [
'.addr-enter-bg-ele',
'.company-address',
'.address',
'[itemprop="address"]'
]),
phone: extractText(doc, [
'[data-log-title="detail-head-phone"] span',
'.company-phone',
'.contact-phone',
'[itemprop="telephone"]'
])
};
return companyInfo;
}
// 辅助函数:从多个可能的选择器中提取文本
function extractText(doc, selectors) {
for (const selector of selectors) {
const element = doc.querySelector(selector);
if (element && element.textContent.trim()) {
return element.textContent.trim();
}
}
return '';
}
// 辅助函数:复制到剪贴板
function copyToClipboard(content, successMessage) {
const textarea = document.createElement('textarea');
textarea.value = content;
textarea.style.position = 'fixed';
textarea.style.top = '0';
textarea.style.left = '0';
textarea.style.width = '1px';
textarea.style.height = '1px';
textarea.style.opacity = '0';
document.body.appendChild(textarea);
textarea.select();
document.execCommand('copy');
document.body.removeChild(textarea);
if (successMessage) {
alert(successMessage);
}
}
// 初始化代码修改
const {container, addButton} = createButtonContainer();
addButton(createSourceButton());
addButton(createParserButton());
})();

View File

@@ -0,0 +1,69 @@
<table data-v-734afde3="" class="zx-detail-basic-table"><tbody data-v-734afde3=""><tr data-v-734afde3=""><td data-v-734afde3="" class="table-regCapital-title">企业名称</td><td data-v-734afde3="" class="table-regCapital-lable enter-bg"><span data-v-734afde3="" class="enter-bg-ele">
杭州奥杰装饰工程有限公司
</span><!----></td><td data-v-734afde3="" class="table-regCapital-title"><div data-v-734afde3="" class="poptip-wrap poptip-wrap-unified-code ivu-poptip"><div class="ivu-poptip-rel">
统一社会信用代码
<span data-v-734afde3="" class="poptip-title icon-question"></span></div> <div class="ivu-poptip-popper" style="width: 400px; display: none; position: absolute; will-change: top, left; top: 120px; left: 570px;" x-placement="bottom-start"><div class="ivu-poptip-content"><div class="ivu-poptip-arrow"></div> <!----> <div class="ivu-poptip-inner"><!----> <div class="ivu-poptip-body"><div class="ivu-poptip-body-content"><div data-v-734afde3="" class="poptip-content"><p data-v-734afde3="" class="poptip-line"><span data-v-734afde3="" class="title"></span>一般指法人和其他组织统一社会信用代码,相当于让法人和其他组织拥有了一个全国统一的“身份证号”。
</p><p data-v-734afde3="" class="poptip-line"><span data-v-734afde3="" class="title"></span>标准规定统一社会信用代码用18位阿拉伯数字或大写英文字母表示
分别是1位登记管理部门代码、1位机构类别代码、6位登记管理机关行政区划码、9位主体标识码、1位校验码。
</p></div></div></div></div></div></div></div></td><td data-v-734afde3="" class="table-regCapital-lable enter-bg"><span data-v-734afde3="" class="enter-bg-ele">
9133011031131201XU
</span><!----></td></tr><tr data-v-734afde3=""><td data-v-734afde3="" rowspan="1">
法定代表人
<div data-v-734afde3="" class="poptip-wrap ivu-poptip"><div class="ivu-poptip-rel"><span data-v-734afde3="" class="poptip-title icon-question"></span></div> <!----></div></td><td data-v-734afde3="" rowspan="1" class="image-text-content"><div data-v-734afde3="" class="legal-person-portrait"><div data-v-734afde3="" class="fate-image-container middle"><div class="img-logo"><img src="https://xinpub.cdn.bcebos.com/aiqicha/default-person-logo.png?x-bce-process=image/resize,m_lfit,w_112"></div></div></div><div data-v-734afde3="" class="title portrait-text"><div data-v-734afde3="" class="person-name-warp"><a data-v-734afde3="" href="/person?personId=564d36205bb55280b70955c86477a4fc" target="_blank" data-log-an="basic-business" data-log-title="basic-business-legalPerson" class="ellipsis-line-1">
曾显军
</a>
<!----></div><a data-v-734afde3="" href="/person?personId=564d36205bb55280b70955c86477a4fc&amp;subtab=personal-allenterprises&amp;entry=2410002" target="_blank" data-log-an="basic-business" data-log-title="basic-business-compNum" class="extra-title text-orange-important">
TA有<span data-v-734afde3="" class="text-orange">5</span>家企业<i data-v-734afde3="" class="ivu-icon ivu-icon-ios-arrow-forward"></i></a></div></td><td data-v-734afde3=""><span data-v-734afde3="">经营状态</span></td><td data-v-734afde3=""><span data-v-734afde3="">开业</span></td></tr><!----><tr data-v-734afde3=""><td data-v-734afde3="">成立日期</td><td data-v-734afde3="">
2014-08-05
</td><td data-v-734afde3="">行政区划</td><td data-v-734afde3="">浙江省杭州市余杭区</td></tr><tr data-v-734afde3=""><td data-v-734afde3="" class="table-regCapital-title">
注册资本
<div data-v-734afde3="" class="poptip-wrap ivu-poptip"><div class="ivu-poptip-rel"><span data-v-734afde3="" class="poptip-title icon-question"></span></div> <!----></div></td><td data-v-734afde3="" class="table-regCapital-lable">
200万(元)
</td><td data-v-734afde3="" class="table-paidinCapital-title">
实缴资本
<div data-v-734afde3="" class="poptip-wrap ivu-poptip"><div class="ivu-poptip-rel"><span data-v-734afde3="" class="poptip-title icon-question"></span></div> <!----></div></td><td data-v-734afde3="" class="table-paidinCapital-lable">
200万(元)
</td></tr><tr data-v-734afde3=""><td data-v-734afde3="" class="table-regCapital-title">企业类型</td><td data-v-734afde3="" class="table-regCapital-lable">
有限责任公司(自然人独资)
</td><td data-v-734afde3="" class="table-paidinCapital-title">所属行业</td><td data-v-734afde3="" class="table-paidinCapital-lable">
批发业
</td></tr><tr data-v-734afde3=""><td data-v-734afde3="">
工商注册号
<div data-v-734afde3="" class="poptip-wrap ivu-poptip"><div class="ivu-poptip-rel"><span data-v-734afde3="" class="poptip-title icon-question"></span></div> <!----></div></td><td data-v-734afde3="" class="enter-bg"><span data-v-734afde3="" class="enter-bg-ele">
330184000311238
</span><!----></td><td data-v-734afde3=""><div data-v-734afde3="" class="poptip-wrap poptip-wrap-org-no ivu-poptip"><div class="ivu-poptip-rel">
组织机构代码
<span data-v-734afde3="" class="poptip-title icon-question"></span></div> <div class="ivu-poptip-popper" style="width: 400px; display: none; position: absolute; will-change: top, left; top: 351px; left: 570px;" x-placement="bottom-start"><div class="ivu-poptip-content"><div class="ivu-poptip-arrow"></div> <!----> <div class="ivu-poptip-inner"><!----> <div class="ivu-poptip-body"><div class="ivu-poptip-body-content"><div data-v-734afde3="" class="poptip-content"><p data-v-734afde3="" class="poptip-line"><span data-v-734afde3="" class="title"></span>组织机构代码是对国内依法注册、登记的机关、企事业单位、社会团体,以及其他组织机构颁发的唯一的、始终不变的代码标识。
</p><p data-v-734afde3="" class="poptip-line"><span data-v-734afde3="" class="title"></span>由8位数字或大写拉丁字母本体代码和1位数字或大写拉丁字母校验码组成。
</p></div></div></div></div></div></div></div></td><td data-v-734afde3="" class="enter-bg"><span data-v-734afde3="" class="enter-bg-ele">31131201-X</span><!----></td></tr><tr data-v-734afde3=""><td data-v-734afde3=""><div data-v-734afde3="" class="poptip-wrap poptip-wrap-tax-no ivu-poptip"><div class="ivu-poptip-rel">
纳税人识别号
<span data-v-734afde3="" class="poptip-title icon-question"></span></div> <div class="ivu-poptip-popper" style="width: 400px; display: none; position: absolute; will-change: top, left; top: 393px; left: 11px;" x-placement="bottom-start"><div class="ivu-poptip-content"><div class="ivu-poptip-arrow"></div> <!----> <div class="ivu-poptip-inner"><!----> <div class="ivu-poptip-body"><div class="ivu-poptip-body-content"><div data-v-734afde3="" class="poptip-content"><p data-v-734afde3="" class="poptip-line"><span data-v-734afde3="" class="title"></span>纳税人识别号是税务登记证上的号码,通常简称为“税号”,每个企业的纳税人识别号都是唯一的。
</p><p data-v-734afde3="" class="poptip-line"><span data-v-734afde3="" class="title"></span>由15位、17位、18或者20位码字符型组成。
</p></div></div></div></div></div></div></div></td><td data-v-734afde3="" class="enter-bg"><span data-v-734afde3="" class="enter-bg-ele">9133011031131201XU</span><!----></td><td data-v-734afde3="">
纳税人资质
<div data-v-734afde3="" class="poptip-wrap ivu-poptip"><div class="ivu-poptip-rel"><span data-v-734afde3="" class="poptip-title icon-question"></span></div> <!----></div></td><td data-v-734afde3="">增值税一般纳税人</td></tr><tr data-v-734afde3=""><td data-v-734afde3="">
营业期限
<div data-v-734afde3="" class="poptip-wrap ivu-poptip"><div class="ivu-poptip-rel"><span data-v-734afde3="" class="poptip-title icon-question"></span></div> <!----></div></td><td data-v-734afde3="">2014-08-05 至 2034-08-04</td><td data-v-734afde3=""><div data-v-734afde3="" class="poptip-wrap poptip-wrap-annual-date ivu-poptip"><div class="ivu-poptip-rel">
核准日期
<span data-v-734afde3="" class="poptip-title icon-question"></span></div> <div class="ivu-poptip-popper" style="width: 400px; display: none; position: absolute; will-change: top, left; top: 436px; left: 570px;" x-placement="bottom-start"><div class="ivu-poptip-content"><div class="ivu-poptip-arrow"></div> <!----> <div class="ivu-poptip-inner"><!----> <div class="ivu-poptip-body"><div class="ivu-poptip-body-content"><div data-v-734afde3="" class="poptip-content"><p data-v-734afde3="" class="poptip-line">
核准日期指企业营业执照登记事项最近一次变更,经工商部门核准,颁发新营业执照的日期。
</p></div></div></div></div></div></div></div></td><td data-v-734afde3="">2020-08-24</td></tr><tr data-v-734afde3=""><td data-v-734afde3="">
参保人数
<div data-v-734afde3="" class="poptip-wrap ivu-poptip"><div class="ivu-poptip-rel"><span data-v-734afde3="" class="poptip-title icon-question insurance-info"></span></div> <div class="ivu-poptip-popper" style="width: 280px; display: none; position: absolute; will-change: top, left; top: 478px; left: 71px;" x-placement="bottom-start"><div class="ivu-poptip-content"><div class="ivu-poptip-arrow"></div> <!----> <div class="ivu-poptip-inner"><!----> <div class="ivu-poptip-body"><div class="ivu-poptip-body-content"><div data-v-734afde3="" class="poptip-content"><p data-v-734afde3="" class="poptip-line">
信息来源:
<a data-v-734afde3="" href="/annualreport?pid=55748926477318&amp;year=2024" target="_blank" data-log-an="business-table" data-log-title="business-table-yearReport" class="use-map">
2024年年报
</a>结果仅供参考。
</p></div></div></div></div></div></div></div></td><td data-v-734afde3="">
3人
<img data-v-734afde3="" src="https://xin-static.cdn.bcebos.com/aiqicha-pc/data-trend.png" data-log-an="basic-insurance" data-log-title="basic-insurance-click-line-chart" class="data-trend"></td><td data-v-734afde3="">登记机关</td><td data-v-734afde3="">
杭州市余杭区市场监督管理局
</td></tr><!----><tr data-v-734afde3=""><td data-v-734afde3="">曾用名</td><td data-v-734afde3="" colspan="3" class="enter-bg"><p data-v-734afde3=""><span data-v-734afde3="" class="enter-bg-ele">
杭州茂复建材有限公司
</span><!----></p></td></tr><tr data-v-734afde3=""><td data-v-734afde3="">注册地址</td><td data-v-734afde3="" colspan="3"><span data-v-734afde3="" class="addr-enter-bg-ele">浙江省杭州市余杭区五常街道郭家兜路8号1幢4楼408室</span><span data-v-734afde3="" class="use-map"><a data-v-734afde3="" href="http://api.map.baidu.com/geocoder?address=%E6%B5%99%E6%B1%9F%E7%9C%81%E6%9D%AD%E5%B7%9E%E5%B8%82%E4%BD%99%E6%9D%AD%E5%8C%BA%E4%BA%94%E5%B8%B8%E8%A1%97%E9%81%93%E9%83%AD%E5%AE%B6%E5%85%9C%E8%B7%AF8%E5%8F%B71%E5%B9%A24%E6%A5%BC408%E5%AE%A4&amp;output=html" target="_blank" data-log-an="basic-business" data-log-title="basic-business-use-map">
查看地图
</a></span><!----></td></tr><tr data-v-734afde3=""><td data-v-734afde3="">
经营范围
<div data-v-734afde3="" class="poptip-wrap ivu-poptip"><div class="ivu-poptip-rel"><span data-v-734afde3="" class="poptip-title icon-question"></span></div> <!----></div></td><td data-v-734afde3="" colspan="3"><div data-v-6b617b08="" data-v-734afde3="" class="fold-container line--1">设计、施工:建筑工程、室内外装饰工程、幕墙工程;销售:建筑材料,装饰材料,石材,五金;服务:铝合金门窗上门安装,建筑工程技术咨询,国内广告设计和制作。(依法须经批准的项目,经相关部门批准后方可开展经营活动)
<!----><!----><!----></div></td></tr></tbody></table>

1647
杭州奥杰装饰.txt Normal file

File diff suppressed because one or more lines are too long