aosabook/500lines

crawler can't work as expected

ramsayleung opened this issue · 2 comments

i have installed required package, and then start to run crawler.But crawler gets stuck, and nothing else happen. show as below
1 python3 crawl py -v xkcd com python3 5 2017-04-13 12-52-57
python3 version:

Python 3.5.0 :: Anaconda custom (x86_64)

platform info:

macOS sierra version 10.12.3

Is there anyone could help me out?

press crtl-c, and this is the stack trace

*** Report ***
http://xkcd.com 301 redirect https://xkcd.com/
Finished 1 urls in 3.876 secs (max_tasks=100) (0.003 urls/sec/task)
         1 redirect
Todo: 0
Done: 1
Date: Fri Apr 14 14:39:57 2017 local time
ERROR:asyncio:Task exception was never retrieved
future: <Task finished coro=<Crawler.work() done, defined at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:233> exception=TypeError('Cannot mix str and non-str arguments',)>
Traceback (most recent call last):
  File "/Users/samray/anaconda3/lib/python3.5/asyncio/tasks.py", line 239, in _step
    result = coro.send(value)
  File "/Users/samray/Samray/Programming/python/crawler/code/crawling.py", line 240, in work
    yield from self.fetch(url, max_redirect)
  File "/Users/samray/Samray/Programming/python/crawler/code/crawling.py", line 225, in fetch
    stat, links = yield from self.parse_links(response)
  File "/Users/samray/Samray/Programming/python/crawler/code/crawling.py", line 150, in parse_links
    normalized = urllib.parse.urljoin(response.url, url)
  File "/Users/samray/anaconda3/lib/python3.5/urllib/parse.py", line 415, in urljoin
    base, url, _coerce_result = _coerce_args(base, url)
  File "/Users/samray/anaconda3/lib/python3.5/urllib/parse.py", line 111, in _coerce_args
    raise TypeError("Cannot mix str and non-str arguments")
TypeError: Cannot mix str and non-str arguments
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() done, defined at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:233> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
➜  code >....
gramming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>
ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending coro=<Crawler.work() running at /Users/samray/Samray/Programming/python/crawler/code/crawling.py:238> wait_for=<Future pending cb=[Task._wakeup()]>>

Finaly, it turns out that the "non-str" is yarl.URL type, after I convert it to
by str(), everything works as expected