推文扒取

扒取推文的插件

作者
Cierra-Runis
今日安裝
0
安裝總數
70
評價
0 0 0
版本
1.2
建立日期
2022-08-02
更新日期
2023-03-06
尺寸
4.4 KB
授權條款
未知
腳本執行於

// ==UserScript==
// @name 推文扒取
// @namespace https://github.com/Cierra-Runis/getTweets
// @version 1.2
// @description 扒取推文的插件
// @connect raw.githubusercontent.com
// @connect github.com
// @connect cdn.jsdelivr.net
// @author https://github.com/Cierra-Runis
// @match https://twitter.com/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=twitter.com
// @grant none
// ==/UserScript==

window.onload = (function () {
'use strict';

var list = [];
var times = 0;
setInterval(addButton, 1000);

function addButton() {
var div = document.createElement('div');
div.style.cssText = "width: 25px;height: 25px;color: #ffffff;text-align: center;font-size: small;line-height: 25px;margin: 5px;cursor: pointer;display: flow-root;z-index: 1";
div.innerText = "下载";
div.onclick = function () {
if (confirm("要下载推文吗?")) {
setInterval(getTweets, 5000);
}
}
if (document.querySelector('#react-root').lastChild.innerText == '下载') {
// console.log('button has existed');
} else {
document.querySelector('#react-root').appendChild(div);
}

}

function getTweets() {
var url = window.location.href;
var before = list.length;

try {

var blocks = document.evaluate('//*[@id="react-root"]/div[1]/div/div[2]/main/div/div/div/div[1]/div/div[3]/div/div/section/div/div', document).iterateNext().childNodes

for (var i = 0; i < blocks.length; i++) {
var div = blocks[i].querySelector('div>div>div>article>div>div');
if (div == null) {
// console.log('block is null');
} else {
try {
var block = div.childNodes[1];
if (block.childNodes[1].childElementCount != 3) {
console.log('This is a block has not text');
continue;
} else {
console.log('Has text!');
}
var href = block.getElementsByTagName("a")[0].href;
if (href != url) {
// console.log(href + "!=" + url);
continue;
} else {
var textContent = block.childNodes[1].childNodes[1].innerText;
var isExited = false;
for (var j = 0; j < list.length; j++) {
if (list[j].content == textContent) {
// console.log('text (' + list[j].content + ') has existed!');
isExited = true;
}
}
if (!isExited) {
console.log('text hasn\'t existed, adding to list.');
list.push({ content: textContent });
}
}
} catch (error) {
// console.log('href isn\'t exist');
}
}
// console.log(i + ". end");
}
// console.log('END');
var after = list.length;
if (after == before) {
// console.log('No new text was add!!!');
times++;
} else {
// console.log('New text was Add.');
times = 0;
}
if (times > 3) {
var jsonStr = JSON.stringify(list);
// console.log(jsonStr);
createAndDownloadFile(url.substring(20) + ".json", jsonStr);
window.location.href = "about:blank";
window.close();
}
window.scrollTo(0, document.body.scrollHeight);
} catch (error) {
console.log('error');
}

}

function createAndDownloadFile(fileName, content) {
var aTag = document.createElement('a');
var blob = new Blob([content]);
aTag.download = fileName;
aTag.href = URL.createObjectURL(blob);
aTag.click();
URL.revokeObjectURL(blob);
}

})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址