简体   繁体   中英

RuntimeError: This event loop is already running in python sitemaping

Code of program

import sys
import logging
from pysitemap import crawler
import pandas
df = pandas.read_excel(r'absoltepath')
for index, row in df.iterrows():
    #row name where excel data exist
    Url=row['data']
if __name__ == '__main__':
    if '--iocp' in sys.argv:
        from asyncio import events, windows_events
        sys.argv.remove('--iocp')
        logging.info('using iocp')
        el = windows_events.ProactorEventLoop()
        events.set_event_loop(el)
    #storing name    
    crawler(Url, out_file=f'{index}sitemap.xml')

Error

RuntimeError Traceback (most recent call last) ~\AppData\Local\Temp\ipykernel_8812\3669626430.py in 11 events.set_event_loop(el) 12 #storing name ---> 13 crawler(Url, out_file=f'{index}sitemap.xml')

~\anaconda3\lib\site-packages\pysitemap_ init _.py in crawler(root_url, out_file, out_format, maxtasks, exclude_urls) 19 if exclude_urls: 20 c.set_exclude_url(urls_list=exclude_urls) ---> 21 loop.run_until_complete(c.run()) 22 23 try:

~\anaconda3\lib\asyncio\base_events.py in run_until_complete(self, future) 568 future.add_done_callback(_run_until_complete_cb) 569 try: --> 570 self.run_forever() 571 except: 572 if new_task and future.done() and not future.cancelled():

~\anaconda3\lib\asyncio\base_events.py in run_forever(self) 523 self._check_closed() 524 if self.is_running(): --> 525 raise RuntimeError('This event loop is already running') 526 if events._get_running_loop() is not None: 527 raise RuntimeError(

RuntimeError: This event loop is already running

I found myself a solution

import sys
import logging
from pysitemap import crawler
import pandas
if __name__ == '__main__':
    if '--iocp' in sys.argv:
        from asyncio import events, windows_events
        sys.argv.remove('--iocp')
        logging.info('using iocp')
        el = windows_events.ProactorEventLoop()
        events.set_event_loop(el)
df = pandas.read_excel(r'absolutepath')
for index, row in df.iterrows():
    #row name where excel data exist
    Url=row['data']
    #storing name    
    crawler(Url, out_file=f'{index}sitemap.xml')

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM