我正在尝试使用pyautogui或模拟类似人类的鼠标运动autopy
有哪位知道或者可以提供一下好的方法吗?
假设我想从 (0, 0) 移动到 (56, 200)。如果我使用pyautogui.moveTo(),它就会跳到那里。如果我使用autopy.mouse.smooth_move(),它可以完成工作,但运动非常假。
我希望它移动到屏幕上的随机节点,但最终到达目的地。
我的问题是,无论何时我向图表添加一个点,它都会压缩所有点.相反,我希望它自动滚动.
这里有两个.gif来解释我的问题
我现在有什么
我想要实现的目标
我现在的代码是
DateTime dt;
private void Form1_Load(object sender, EventArgs e)
{
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
dt = DateTime.Now;
if (checkBox1.Checked)
{
chart1.Series["Light"].Points.AddXY(dt.ToShortTimeString(), 1);
}
else
{
chart1.Series["Light"].Points.AddXY(dt.ToShortTimeString(), 0);
}
}
Run Code Online (Sandbox Code Playgroud) 您好,我正在尝试抓取一个由 Akamai 提供支持的网站以进行机器人程序保护。由于 Akamai 阻止我的登录请求,我无法通过登录页面。
首先我想说的是,是的,有很多关于如何避免被 Akamai 等公司检测到的指南,但这些指南现在已经无关紧要,因为 Akamai 这样的公司通过使用 AI 检测新机器人而变得越来越好。
那么让我告诉您我的脚本正在运行的基础知识:
对于 Chrome 标志:
var chromeFlags = [
'--no-sandbox',
'--disable-setuid-sandbox',
'--disable-accelerated-2d-canvas',
'--no-zygote',
'--renderer-process-limit=1',
'--no-first-run',
'--ignore-certificate-errors',
'--ignore-certificate-errors-spki-list',
'--disable-dev-shm-usage',
'--disable-infobars',
'--lang=en-US,en',
'--window-size=1920x1080',
'--disable-extensions'
];
Run Code Online (Sandbox Code Playgroud)
我还欺骗了时区和视口:
await page.emulateTimezone("Asia/Singapore");
await page.setViewport({width: (width/2)-21, height: height-111});
Run Code Online (Sandbox Code Playgroud)
据我所知,Akamai 非常了解窗口/屏幕尺寸。我已经做了我认为必要的一切来确保无头模式模仿实际的浏览器,但无济于事。
有一个网站可以显示您的浏览器指纹bot.sannysoft.com。我目前正在使用它来比较无头木偶师是否模仿实际的有头浏览器,到目前为止它看起来像是一个合法的浏览器。这是我用无头木偶师从该网站获得的结果
我希望有人能够告诉我是否应该尝试进行欺骗,以增加不被 Akamai 检测到的机会,或者指出我哪里做错了。
感谢大家!
这是我指的弹出窗口:
有没有办法阻止 chrome 显示这些弹出窗口?我尝试过使用--user-data-dir.
以下是我使用的所有标志:
const chromeSwitches = [
`--user-data-dir=${tasksDataDirPath+'\\'+taskName}`,
`--remote-debugging-port=${availablePort}`,
"--arc-disable-locale-sync",
"--disable-features=IsolateOrigins,site-per-process",
"--disable-component-extensions-with-background-pages",
"--disable-background-timer-throttling",
"--disable-backgrounding-occluded-windows",
"--disable-renderer-backgrounding",
"--no-first-run",
"--password-store=basic",
"--use-mock-keychain",
"--disable-extensions",
"--disable-default-apps",
"--disable-features=Translate",
"--disable-background-networking",
"--disable-sync",
"--metrics-recording-only",
"--mute-audio",
"--no-default-browser-check",
"--enable-remote-debugging"
];
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用波特率 9600 通过串行端口读取从我的 Arduino 发送的消息。
我的 Arduino 代码被编程为每当我按下按钮时发送“1”,当我松开手指时发送“0”。
所以它不是不断地发送数据。
我的 C# 程序是读取该消息并将其添加到 ListBox。但是每当我启动它时,程序就会挂起。
private void button1_Click(object sender, EventArgs e)
{
SerialPort port = new SerialPort();
port.BaudRate = 9600;
port.PortName = "COM4";
port.ReadTimeout = 1000;
port.Open();
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
try
{
ee = port.ReadLine();
listBox1.Items.Add(ee);
}
catch (Exception)
{
timer1.Stop();
}
}
Run Code Online (Sandbox Code Playgroud)
我想,也许原因是我的程序应该在接收之前检查是否有可用的数据接收?
嗨,当我执行此命令时使用 PyArmor:
pyarmor pack main.py
它将它打包到一个名为的文件夹中dist,里面包含我的 .exe 以及许多 Python 扩展文件。
我知道 PyArmor 使用 PyInstaller 来打包它的文件。PyInstaller 有一个名为--onefile.
如何将我的混淆脚本打包到一个 .exe 文件中?
也许像...... pyarmor pack --onefile main.py?
我有一个包含以下单词的文本文件:
姓名:鲍勃
年龄:3岁
我的c#代码是:
string text = File.ReadAllText("path to a.txt");
Run Code Online (Sandbox Code Playgroud)
我如何串,这样我能得到的价值3和Bob?