【问题标题】:RuntimeError: This event loop is already running in python sitemapingRuntimeError:此事件循环已在 python 站点映射中运行
【发布时间】:2022-08-24 19:06:24
【问题描述】:

程序代码

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\')

错误

RuntimeError Traceback(最近一次调用 最后)~\\AppData\\Local\\Temp\\ipykernel_8812\\3669626430.py 在 11 事件.set_event_loop(el) 12 #存储名称 ---> 13 爬虫(Url, out_file=f\'{index}sitemap.xml\')

~\\anaconda3\\lib\\site-packages\\pysitemap_在里面_.py 在 爬虫(root_url,out_file,out_format,maxtasks,exclude_urls) 19 如果 exclude_urls: 20 c.set_exclude_url(urls_list=exclude_urls) ---> 21 loop.run_until_complete(c.run()) 22 23 尝试:

~\\anaconda3\\lib\\asyncio\\base_events.py 在 run_until_complete(self, 未来) 第568章 569尝试: --> 570 self.run_forever() 571 除了: 572 如果 new_task 和 future.done() 而不是 future.cancelled():

~\\anaconda3\\lib\\asyncio\\base_events.py in run_forever(self) 第523章 524 如果 self.is_running(): --> 525 raise RuntimeError(\'这个事件循环已经在运行\') 526 如果 events._get_running_loop() 不是无: 第527章

RuntimeError:此事件循环已在运行

  • 你有问题吗?你要告诉我们 if 语句是 True 还是 False 吗?您是否尝试过两种方式,如果是,这有关系吗?

标签: python web-crawler runtime-error python-asyncio sitemap


【解决方案1】:

我找到了自己的解决方案

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')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-30
    • 1970-01-01
    相关资源
    最近更新 更多