Как избежать 503 ошибок с помощью urllib2 - PullRequest
0 голосов
/ 09 июля 2011

Я новичок в изучении веб-страниц с помощью Python, поэтому я не знаю, правильно ли я это делаю.

Я использую скрипт, который вызывает BeautifulSoup для анализа URL-адресов с первых 10страницы поиска Google.Протестировано на stackoverflow.com, работало просто отлично из коробки.Я несколько раз тестировал с другим сайтом, пытаясь понять, действительно ли скрипт работает с запросами на более высоких страницах google, а потом 503.Я переключился на другой URL для тестирования и работал над парой небольших запросов, а затем и 503.Теперь каждый URL, который я передаю, является 503'ing.Есть предложения?

import sys # Used to add the BeautifulSoup folder the import path
import urllib2 # Used to read the html document

if __name__ == "__main__":
### Import Beautiful Soup
### Here, I have the BeautifulSoup folder in the level of this Python script
### So I need to tell Python where to look.
sys.path.append("./BeautifulSoup")
from BeautifulSoup import BeautifulSoup

### Create opener with Google-friendly user agent
opener = urllib2.build_opener()
opener.addheaders = [('User-agent', 'Mozilla/5.0')]

### Open page & generate soup
### the "start" variable will be used to iterate through 10 pages.
for start in range(0,10):
    url = "http://www.google.com/search?q=site:stackoverflow.com&start=" + str(start*10)
    page = opener.open(url)
    soup = BeautifulSoup(page)

    ### Parse and find
    ### Looks like google contains URLs in <cite> tags.
    ### So for each cite tag on each page (10), print its contents (url)
    for cite in soup.findAll('cite'):
        print cite.text

Ответы [ 2 ]

5 голосов
/ 09 июля 2011

Автоматические запросы не разрешены Условиями использования Google. Смотрите эту статью для информации: Необычный трафик с вашего компьютера а также Условия использования Google

0 голосов
/ 10 июля 2011

Как сказал Этторе, удаление результатов поиска противоречит нашему ToS. Однако ознакомьтесь с API WebSearch, в частности, с нижним разделом документации , которая должна дать вам подсказку о том, как получить доступ к API из не-javascipt-сред.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...