【发布时间】:2015-01-03 07:14:38
【问题描述】:
我有一个抓取网站的脚本。 直到今天它运行完美, 但是现在不这样做了。
它给我以下错误:
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'
我一直在寻找答案和设置,但我不知道如何解决这个问题...
在 IE 中我没有使用任何代理(连接 -> 局域网设置 -> 代理 = 禁用)
它在这段代码中中断,第一次运行,第二次运行,等等
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
我该如何解决这个问题?
【问题讨论】:
-
你的脚本可能被阻止了,因为很明显你是一个爬虫。
-
这有多明显?我每 5 秒请求一次页面。我使用标题让网站认为我是用户
-
我不是故意粗鲁的,抱歉。但是,您的所有请求都将来自一个 IP 地址,每 5 秒一次。如果有人正在查看服务器日志或正在运行原始监控软件,那么您将明显成为异常值和抓取机器人。
-
我不认为这很粗鲁,只是想要一个解释。但是我确实需要解决这个问题!我受到网站提供的页面请求数量的限制(每小时 1800 个)我唯一没有做的就是遵守他们的 robots.txt
-
寻找另一种方法来进行循环 IP 的抓取,您也可以尝试使用具有一些内置技巧的 scrapy 来伪装您在做什么
标签: python web-crawler python-requests urllib