Python + механизировать асинхронные задачи - PullRequest
1 голос
/ 19 декабря 2010

Итак, у меня есть немного кода на Python, который просматривает восхитительную страницу и очищает ее от некоторых ссылок.Метод извлечения содержит некоторую магию, которая вытягивает необходимый контент.Тем не менее, запуск выборок страницы один за другим довольно медленный - есть ли способ сделать эту асинхронность в python, чтобы я мог запускать несколько запросов get и обрабатывать страницы параллельно?

url= "http://www.delicious.com/search?p=varun"
page = br.open(url)
html = page.read()
soup = BeautifulSoup(html)
extract(soup)

count=1
#Follows regexp match onto consecutive pages
while soup.find ('a', attrs={'class': 'pn next'}):
    print "yay"
    print count
    endOfPage = "false"
    try :
        page3 = br.follow_link(text_regex="Next")
        html3 = page3.read()
        soup3 = BeautifulSoup(html3)
        extract(soup3)
    except:
        print "End of Pages"
        endOfPage = "true"
    if valval == "true":
        break
    count = count +1

1 Ответ

1 голос
/ 19 декабря 2010

Beautiful Soup довольно медленный, если вы хотите повысить производительность, используйте вместо этого lxml или если у вас много процессоров, возможно, вы можете попробовать использовать многопроцессорную обработку с очередями.

...