2011-07-09 2 views
0

Я новичок в веб-соскабливании с помощью python, поэтому не знаю, правильно ли я это делаю.Избегайте 503 ошибок с urllib2

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

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 

ответ

5

Автоматические запросы не разрешены Условиями использования Google. Смотрите эту статью для информации: Unusual traffic from your computer , а также Google Terms of service

+0

Это имеет смысл. Есть ли способ сделать это с помощью API веб-поиска Google? Я чувствую, что должно быть, но у меня нет большого опыта работы с AJAX или Javascript. – AI52487963

0

Как сказал Этторе, очищая результаты поиска против наших ToS. Однако проверьте WebSearch api, в частности нижнюю часть documentation, которая должна дать вам подсказку о том, как получить доступ к API из среды, отличной от javascipt.

Смежные вопросы