错误提示如下
--------------------------------------------------------------------------- RuntimeError Traceback (most recent call last) <ipython-input-9-34093fabd564> in <module> 11 await browser.close() 12 ---> 13 <span class="wp_keywordlink_affiliate"><a href="https://www.168seo.cn/tag/asyncio" title="View all posts in asyncio" target="_blank">asyncio</a></span>.get_event_loop().run_until_complete(main()) ~/anaconda3/lib/python3.6/<span class="wp_keywordlink_affiliate"><a href="https://www.168seo.cn/tag/asyncio" title="View all posts in asyncio" target="_blank">asyncio</a></span>/base_events.py in run_until_complete(self, future) 469 future.add_done_callback(_run_until_complete_cb) 470 try: --> 471 self.run_forever() 472 except: 473 if new_task and future.done() and not future.cancelled(): ~/anaconda3/lib/python3.6/<span class="wp_keywordlink_affiliate"><a href="https://www.168seo.cn/tag/asyncio" title="View all posts in asyncio" target="_blank">asyncio</a></span>/base_events.py in run_forever(self) 423 self._check_closed() 424 if self.is_running(): --> 425 raise RuntimeError('This event loop is already running') 426 if events._get_running_loop() is not None: 427 raise RuntimeError( RuntimeError: This event loop is already running
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-
RuntimeError
Traceback
(
most
recent
call
last
)
<
ipython
-
input
-
9
-
34093fabd564
>
in
<
module
>
11
await
browser
.
close
(
)
12
--
->
13
asyncio
.
get_event_loop
(
)
.
run_until_complete
(
main
(
)
)
~
/
anaconda3
/
lib
/
python3
.
6
/
asyncio
/
base_events
.
py
in
run_until_complete
(
self
,
future
)
469
future
.
add_done_callback
(
_run_until_complete_cb
)
470
try
:
--
>
471
self
.
run_forever
(
)
472
except
:
473
if
new_task
and
future
.
done
(
)
and
not
future
.
cancelled
(
)
:
~
/
anaconda3
/
lib
/
python3
.
6
/
asyncio
/
base_events
.
py
in
run_forever
(
self
)
423
self
.
_check_closed
(
)
424
if
self
.
is_running
(
)
:
--
>
425
raise
RuntimeError
(
'This event loop is already running'
)
426
if
events
.
_get_running_loop
(
)
is
not
None
:
427
raise
RuntimeError
(
RuntimeError
:
This
event
loop
is
already
running
|
运行的是如下的代码
import asyncio from pyppeteer import launch from pyquery import PyQuery as pq async def main(): browser = await launch() page = await browser.newPage() await page.goto('http://quotes.toscrape.com/js/') doc = pq(await page.content()) print('Quotes:', doc('.quote').length) await browser.close() asyncio.get_event_loop().run_until_complete(main())
1
2
3
4
5
6
7
8
9
10
11
12
13
|
import
asyncio
from
pyppeteer
import
launch
from
pyquery
import
PyQuery
as
pq
async
def
main
(
)
:
browser
=
await
launch
(
)
page
=
await
browser
.
newPage
(
)
await
page
.
goto
(
'http://quotes.toscrape.com/js/'
)
doc
=
pq
(
await
page
.
content
(
)
)
print
(
'Quotes:'
,
doc
(
'.quote'
)
.
length
)
await
browser
.
close
(
)
asyncio
.
get_event_loop
(
)
.
run_until_complete
(
main
(
)
)
|
在网上搜索的解决方法:
添加如下两行代码:
import nest_asyncio nest_asyncio.apply()
1
2
3
|
import
nest_asyncio
nest_asyncio
.
apply
(
)
|