由于某种原因,我无法弄清楚如何禁用弹出窗口阻止程序(以允许弹出窗口工作)。这个有用,所以我猜测它与新版本的 Chrome/Chromedriver 有关?下面是一些示例代码,我知道它可以工作,但是现在当弹出窗口发生时,我什至看不到右上角的图标,您可以在其中允许或不允许弹出窗口。我也尝试使用此处找到的首选项来禁用弹出窗口阻止程序,但这不起作用。如果有人有解决方案,将不胜感激!
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
request_url = 'https://www.example.com'
chrome_options = Options()
chrome_options.add_argument("--disable-popup-blocking")
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.get(request_url)
Run Code Online (Sandbox Code Playgroud) python selenium google-chrome python-3.x selenium-chromedriver
我一直在尝试各种各样的东西,以便能够在另一个asyncio循环中使用asyncio循环.大多数时候我的测试只是以错误结束,例如:
RuntimeError:此事件循环已在运行
我下面的示例代码只是我开始的基础测试,因此您可以看到我想要做的基础知识.在这次测试之后我尝试了很多东西,这太混乱了,所以我想在寻求帮助时我应该保持简单.如果有人能指出我正确的方向,那将是伟大的.感谢您的时间!
import asyncio
async def fetch(data):
message = 'Hey {}!'.format(data)
other_data = ['image_a.com', 'image_b.com', 'image_c.com']
images = sub_run(other_data)
return {'message' : message, 'images' : images}
async def bound(sem, data):
async with sem:
r = await fetch(data)
return r
async def build(dataset):
tasks = []
sem = asyncio.Semaphore(400)
for data in dataset:
task = asyncio.ensure_future(bound(sem, data))
tasks.append(task)
r = await asyncio.gather(*tasks)
return r
def run(dataset):
loop = asyncio.get_event_loop()
future = asyncio.ensure_future(build(dataset))
responses = loop.run_until_complete(future)
loop.close()
return responses
async def …Run Code Online (Sandbox Code Playgroud) 试图找出如何设置视口大小(初始窗口大小).我已经知道我可以使用driver.set_window_size(1920,1080),但只设置1个选项卡的窗口大小,如果打开的选项卡超过1个,则其他选项卡不是那个大小.另外我认为它只在页面渲染后设置窗口大小,我希望在页面渲染之前已经设置了窗口大小.以下是我到目前为止所尝试的内容.如果有人知道如何设置视口大小,将非常感激.
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
dcap = dict(DesiredCapabilities.PHANTOMJS)
dcap["phantomjs.page.settings.userAgent"] = (
"Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 "
"(KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36"
)
dcap["phantomjs.page.settings.viewportSize"] = (
"width: 1920, "
"height: 1080"
)
driver = webdriver.PhantomJS(desired_capabilities=dcap)
driver.get('https://www.test.com')
Run Code Online (Sandbox Code Playgroud) 一直试图弄清楚我返回数据后如何访问我的数据。如果我打印它,这是 x 的示例:
<_GatheringFuture finished result=[[{'ip': '173.245.203.70'}], [{'ip': '196.52.2.82'}], [{'ip': '69.161.4.1'}], [{'ip':'73.180.140.205'}], [{'ip': '96.242.181.128'}], [{'ip': '108.208.74.183'}], ...]>
Run Code Online (Sandbox Code Playgroud)
我尝试了 x[0]、x.result、x.results 等……但一直出现错误。有人知道如何访问 Future 结果中的数据吗?感谢您的时间!下面是完整的代码:
import asyncio
from bs4 import BeautifulSoup
from aiohttp import ClientSession
HEADERS = {'user-agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}
proxy = 'xxx.xxx.xxx.xxx:xxxxx'
async def fetch(url, session):
while True:
x = []
try:
async with session.get(url, headers=HEADERS, proxy="http://{}".format(proxy), timeout=9) as r:
print (r.status)
if r.status == 200:
data = await r.read()
soup = …Run Code Online (Sandbox Code Playgroud) 我有一个运行Ubuntu的虚拟机,我可以很好地SSH到虚拟机.我甚至可以使用以下方法通过SSH启动我的python程序:
python foldername/app.py
Run Code Online (Sandbox Code Playgroud)
我在Windows机器上,使用Git Bash SSH.如果我启动我的python程序,我必须打开Git Bash窗口.如何启动python程序而不必在我的Windows机器上打开Git Bash?任何帮助深表感谢!
当我尝试browser.ExecuteJavascript("alert('ExecuteJavaScript works!');")它工作正常(在创建浏览器时弹出警报).当我尝试browser.ExecuteJavascript("document.getElementsByName('q')[0] .value = 24;")没有任何反应.所以我知道ExecuteJavascript正在运行,但是当我尝试设置输入元素的值时,输入元素不会改变?我正在尝试的代码如下,如果有人知道为什么特定的Javascript将无法执行,我将非常感激.
from cefpython3 import cefpython as cef
import platform
import sys
def main():
sys.excepthook = cef.ExceptHook
cef.Initialize()
browser = cef.CreateBrowserSync(url="https://www.google.com", window_title="Hello World!")
browser.ExecuteJavascript("document.getElementsByName('q')[0].value = 24")
cef.MessageLoop()
cef.Shutdown()
if __name__ == '__main__':
main()
Run Code Online (Sandbox Code Playgroud) python ×4
python-3.x ×3
selenium ×2
aiohttp ×1
asynchronous ×1
bash ×1
cefpython ×1
future ×1
javascript ×1
linux ×1
phantomjs ×1
ssh ×1
ubuntu ×1
viewport ×1