我该怎么做?我试图输入一些指定的链接(使用urllib),但要做到这一点,我需要登录.
我从该网站获得此来源:
<form id="login-form" action="auth/login" method="post">
<div>
<!--label for="rememberme">Remember me</label><input type="checkbox" class="remember" checked="checked" name="remember me" /-->
<label for="email" id="email-label" class="no-js">Email</label>
<input id="email-email" type="text" name="handle" value="" autocomplete="off" />
<label for="combination" id="combo-label" class="no-js">Combination</label>
<input id="password-clear" type="text" value="Combination" autocomplete="off" />
<input id="password-password" type="password" name="password" value="" autocomplete="off" />
<input id="sumbitLogin" class="signin" type="submit" value="Sign In" />
Run Code Online (Sandbox Code Playgroud)
这可能吗?
我想做以下几点.登录网站,单击几个特定链接,然后单击下载链接.我想将它作为Windows上的计划任务或Linux上的cron作业运行.我对我使用的语言并不挑剔,但我希望如果可能的话,不要在屏幕上放置浏览器窗口.
我看到有人有一个文件(我猜一个批处理文件).在单击批处理文件时,他能够登录到多个站点.(也许它是用VB完成的.)
我在Google上找了这样一个脚本,但没有找到任何有用的东西.
我知道一些C++和UNIX(也有一些HTML和JavaScript).我不知道是否可以在使用这些语言的Windows机器上完成,但即使可以完成,我认为与VB或C##或其他一些高级语言相比也很困难.
我学会了如何使用批处理文件中包含的基本Windows批处理命令打开多个站点,如:
start http://www.gmail.com
start http://stackoverflow.com
Run Code Online (Sandbox Code Playgroud)
但我仍然无法弄清楚实际点击批处理文件如何帮助我登录到网站,甚至没有输入用户名和密码.
我是否需要开始学习Visual Basic,.NET或Windows批处理编程才能执行此操作?
还有一件事:我还可以用它来登录远程桌面吗?
我试图在Python中使用Selenium.但是,从https://pypi.python.org/pypi/selenium给出以下内容我不知道该怎么做
Selenium需要驱动程序与所选浏览器进行交互.例如,Firefox需要geckodriver,需要在运行以下示例之前安装geckodriver.确保它在您的PATH中,例如,将其放在/ usr/bin或/ usr/local/bin中.
我正在运行Windows 7 32位.我在这里找到了geckodriver:https://github.com/mozilla/geckodriver/releases
我大多使用Anaconda分发的Python来处理excel,所以我不知道什么是"PATH"
谢谢,
我更新了PATH,如评论中所示.这是完整的错误回溯.
Microsoft Windows [版本6.1.7601]版权所有(c)2009 Microsoft Corporation.版权所有.
C:\ Users \用户用户1>蟒
Python 3.5.2 | Anaconda 4.2.0(32位)| (默认,2016年7月5日,11:45:57)[winv上的MSC v.1 900 32位(英特尔)]输入"帮助","版权","信用"或"许可证"以获取更多信息.
来自selenium import webdriver driver = webdriver.Firefox()
回溯(最近一次调用最后一次):文件"",第1行,文件"C:\ Users\user1\AppData\Local\Continuum\Anaconda3\lib\site -packages\selenium-2.53.6-py3.5.egg\selenium\webdriver\firefox\webdriver.py",li ne 80,在init self.binary中,超时)文件"C:\ Users\user1\AppData\Local\Continuum\Anaconda3\lib\site -packages\selenium-2.53 .6-py3.5.egg\selenium\webdriver\firefox\extension_connect ion.py",第52行,在init self.binary.launch_browser(self.profile,timeout = timeout)文件"C:\ Users\user1\AppData\local\Continuum\Anaconda3\lib\site -packages\selenium-2.53.6-py3.5.egg\selenium\webdriver\firefox\firefox_binary.py",第67行,在launch_browser self._start_from_profile_path(self.profile.path) )文件"C:\ Users\user1\AppData\Local\Continuum\Anaconda3\lib\site -packages\selenium-2.53.6-py3.5.egg\selenium\webdriver\firefox\firefox_binary.py",第90行, in _start_from_profile_path env = self._firefox_env)文件"C:\ Users\user1\AppData\Local\Continuum\Anaconda3\lib\subp rocess.py",第947行,在init restore_中 signal,start_new_session)文件"C:\ Users\user1\AppData\Local\Continuum\Anaconda3\lib\subp rocess.py",第1224行,在_execute_child startupinfo中)FileNotFoundError:[WinError 2]系统找不到指定的文件
>
我正在尝试登录网站http://www.magickartenmarkt.de并在会员区进行分析(https://www.magickartenmarkt.de/?mainPage=showWants).我看到了其他的例子,但我不知道为什么我的方法不起作用.我确定了第一种方法的正确形式,但目前尚不清楚它是否有效.在第二种方法中,returing网页向我显示我无法访问成员区域.
我很乐意为你提供任何帮助.
import urllib2
import cookielib
import urllib
import requests
import mechanize
from mechanize._opener import urlopen
from mechanize._form import ParseResponse
USERNAME = 'Test'
PASSWORD = 'bla123'
URL = "http://www.magickartenmarkt.de"
# first approach
request = mechanize.Request(URL)
response = mechanize.urlopen(request)
forms = mechanize.ParseResponse(response, backwards_compat=False)
# I don't want to close?!
#response.close()
# Username and Password are stored in this form
form = forms[1]
form["username"] = USERNAME
form["userPassword"] = PASSWORD
#proof entering data has worked
user = form["username"] # …
Run Code Online (Sandbox Code Playgroud) 我想使用铬而不是铬。我可以通过提供可执行路径在 puppeteer 中实现相同的目的。在 playwright 中它不起作用,因为浏览器类型参数仅支持“chromium、webkit、firefox”
const { chromium } = require('playwright');
(async () => {
const browser = await chromium.launch({
headless: false,
executablePath: '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome',
});
const context = await browser.newContext();
const page = await context.newPage();
await page.goto('http://whatsmyuseragent.org/');
await page.screenshot({ path: `example-${browserType}.png` });
})();
Run Code Online (Sandbox Code Playgroud)
我想从我用 Puppeteer 抓取的网站获取 JSON 数据,但我不知道如何取回请求的正文。这是我尝试过的:
const puppeteer = require('puppeteer')
const results = [];
(async () => {
const browser = await puppeteer.launch({
headless: false
})
const page = await browser.newPage()
await page.goto("https://capuk.org/i-want-help/courses/cap-money-course/introduction", {
waitUntil: 'networkidle2'
});
await page.type('#search-form > input[type="text"]', 'bd14ew')
await page.click('#search-form > input[type="submit"]')
await page.on('response', response => {
if (response.url() == "https://capuk.org/ajax_search/capmoneycourses"){
console.log('XHR response received');
console.log(response.json());
}
});
})()
Run Code Online (Sandbox Code Playgroud)
这只是返回一个承诺挂起函数。任何帮助都会很棒。
我有兴趣自动化我经常访问的网站的某些形式的重复数据输入.到目前为止,我所查找的工具可以以无头的方式为此提供支持,可能是Selenium WebDriver和Mechanize.
我的问题是,使用一次与另一次是否有根本的技术差异?硒主要用于测试.我也注意到有些人用它来完成我正在寻找的东西,这就是自动化数据输入.在这种情况下,测试成为第二个好处.
有没有理由不使用Selenium来做我想做的机械化?这无关紧要,这两种工具都能奏效吗?
我不是问哪个更好,我问的是哪个是适合这项工作的工具.也许我不理解每个工具的目的背后的前提.
selenium mechanize webautomation web-scraping selenium-webdriver
有没有人知道如何获取元素的innerHTML或文本.甚至更好; 如何单击具有特定innerHTML的元素.这是如何使用普通的javascript:
var found = false
$(selector).each(function() {
if (found) return;
else if ($(this).text().replace(/[^0-9]/g, '') === '5' {
$(this).trigger('click');
found = true
}
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助!
我正在寻找有关无头浏览器中发生的事情的更多信息。过去我一直在使用不同的无头浏览器,例如slimmerJS、Phantom.js和Headless Chrome,目的是在不同的站点上截取屏幕截图。
我从来没有生成过与您在浏览器中看到的相似的真实、清晰质量的图像,它看起来像是一种工具限制,例如,这是您可以从中获得的最高质量,但我想了解为什么,以及可能如何使它变得更好。
请比较下面的例子。
如果将真实网站与屏幕截图进行比较,您可以看到图像是如何模糊的。在这个例子中,它只是一个图像,但这也发生在 HTML 文本中。
现在,如果我要使用我的计算机截取屏幕截图,无论是 windows、mac 还是 linux,我都会得到一个质量非常好的屏幕截图,看起来完全像真正的交易。
那么为什么会发生这种情况呢?我尝试了所有标准的事情,例如在每个库中设置最高质量的屏幕截图,并设置一个足够大的视口,以便屏幕截图具有合适的分辨率。这真的是您可以从无头浏览器屏幕截图中获得的最高质量吗?
对这方面的任何启示将不胜感激。谢谢!
javascript webautomation node.js google-chrome-headless puppeteer
webautomation ×10
javascript ×5
node.js ×4
puppeteer ×3
python ×3
selenium ×3
automation ×2
mechanize ×2
autologin ×1
cookies ×1
geckodriver ×1
httpclient ×1
login ×1
path ×1
playwright ×1
vbscript ×1
web-scraping ×1
windows ×1