python 3.3 urllib.request

Steeve C steevechailloux at gmail.com
Fri Dec 7 07:52:52 EST 2012


hello,

I have a python3 script with urllib.request which have a strange behavior,
here is the script :

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import urllib.request
import sys, time


url = 'http://google.com'

def make_some_stuff(page, url):
    sys.stderr.write(time.strftime("%d/%m/%Y %H:%M:%S -> page from \"") +
url + "\"\n")
    sys.stderr.write(str(page) + "\"\n")
    return True

def get_page(url):
    while 1:
        try:
            page = urllib.request.urlopen(url)
            yield page

        except urllib.error.URLError as e:
            sys.stderr.write(time.strftime("%d/%m/%Y %H:%M:%S -> impossible
to access to \"") + url + "\"\n")
            time.sleep(5)
            continue

def main():
    print('in main')
    for page in get_page(url):
        make_some_stuff(page, url)
        time.sleep(5)

if __name__ == '__main__':
    main()
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

if the computer is connected on internet (with an ethernet connection for
example) and I run this script, it works like a charme :
- urllib.request.urlopen return the page
- make_some_stuff write in stderr
- when the ethernet cable is unplug the except block handle the error while
the cable is unplug, and when the cable is pluged
back urllib.request.urlopen return the page and make_some_stuff write in
stderr

this is the normal behavior (for me, imho).

but if the computer is not connected on internet (ethernet cable unpluged)
and I run this script, the except block handle the error (normal), but when
I plug the cable, the script continue looping and urllib.request.urlopen
never return the page (so, it alway go to the except block)

What can I do to handle that ?

Thanks

Steeve
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20121207/5b957fef/attachment.html>


More information about the Python-list mailing list