2015-01-03 2 views
1

У меня есть скрипт, который сканирует веб-сайт. До сегодняшнего дня он прошел отлично, Однако он не делает этого сейчас.Python запрашивает ошибку 10060

это дает SME следующее сообщение об ошибке:

Connection Aborted Error(10060 ' A connection attempt failed becvause the connected party did not properly respond after a period of time, or established a connection failed because connected host has failed to respond' 

Я искал в настройках ответы ANS, но я не могу понять, как это исправить ...

В IE я не использую любой прокси (Соединение -> Lan Настройки-> Proxy = Disabled)

он ломает в этой части кода, somethimes первый запуск, somethimes 2-й .. и так далее

def geturls(functionurl, runtime): 
startCrawl = requests.get(functionurl, headers=headers) 
mainHtml = BeautifulSoup(startCrawl.content, 'html.parser') 
mainItems = mainHtml.find("div",{"id": "js_multiselect_results"}) 
for tag in mainItems.findAll('a', href=True): 
    tag['href'] = urlparse.urljoin(url,tag['href']) 
    if shorturl in tag['href'] and tag['href'] not in visited: 
     if any(x in tag['href'] for x in keepout): 
      falseurls.append(tag['href']) 
     elif tag['href'] in urls: 
      doubleurls.append(tag['href']) 
     else: 
      urlfile.write(tag['href'] + "\n") 
      urls.append(tag['href']) 

totalItemsStart = str(mainHtml.find("span",{"id": "sab_header_results_size"})) 
if runtime == 1: 
    totalnumberofitems[0] = totalItemsStart 
    totalnumberofitems[0] = strip_tags(totalnumberofitems[0]) 
return totalnumberofitems 

Как я могу это исправить?

+1

Ваш скрипт, вероятно, заблокирован, потому что очевидно, что вы скребок. –

+0

Как это очевидно? Я запрашиваю страницу один раз каждые 5 секунд. И я использую заголовки, чтобы сделать сайт, думаю, что я пользователь – brian

+0

Я не пытался грубить, извините. Однако все ваши запросы будут поступать с одного IP-адреса каждые 5 секунд. Если кто-то наблюдает за журналами сервера или запускает программное обеспечение для примитивного мониторинга, вы четко выделяетесь как выброс и очищающий бот. –

ответ

1

Попробуйте увеличить параметр вашего метода requests.gettimeout:

requests.get(functionurl, headers=headers, timeout=5) 

Но шансы, что ваш сценарий блокируются сервером для предотвращения слома попыток. Если это так, вы можете попробовать подделать веб-браузер, установив соответствующие заголовки.

{"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 GTB7.1 (.NET CLR 3.5.30729)", "Referer": "http://example.com"} 
+0

У меня нет параметра тайм-аута, но у меня есть заголовки (следовательно, заголовки = заголовки). То, что у меня нет, это параметр .net и referer. Что делает референт? – brian

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