我有python代码解析来自某个网页的一些信息,使用这些信息创建一个WordPress帖子将其发送到基于WordPress的网站。此代码在我的计算机上完美运行。我正在尝试在服务器上自动运行它。它也可以在服务器上完美运行。我希望这段代码能够连续运行数周。我的问题是在一段时间后,发生以下错误并停止运行;
socket.error:[Errno 111]拒绝连接
我的代码是;
def Crawler(mainUrl):
userN='Username'
passW='Password'
phase=1
while phase<=1:
week=13
while week<=18:
gameCnt=1
bannedGames = []
while gameCnt<=16:
phaseUrl='http://www.eurocupbasketball.com/eurocup/games/results?gamenumber='+str(week)
group=1
while group<=8:
game=2
while game<=3:
gameCheck = 0
gameProcessed = False
while gameCheck < gameCnt:
try:
if bannedGames[gameCheck][0] == group and bannedGames[gameCheck][1] == game:
gameProcessed = True
gameCheck+=1
except:
gameCheck=gameCnt
try:
driver = webdriver.Firefox()
print phaseUrl
driver.get(phaseUrl)
if not gameProcessed:
path='//*[@id="main-one"]/div/div/div/div[1]/div[2]/div[2]/div['+str(group)+']/div['+str(game)+']/a/div[3]/span[3]'
if "FINAL" in driver.find_element_by_xpath(path).text:
try:
gamePath='//*[@id="main-one"]/div/div/div/div[1]/div[2]/div[2]/div['+str(group)+']/div['+str(game)+']/a'
gameUrl=driver.find_element_by_xpath(gamePath).get_attribute("href")
print gameUrl
gameCode = [group,game]
bannedGames.append(gameCode)
gameProcessed=True
processGame(gameUrl,userN,passW,driver)
if gameProcessed:
gameCnt+=1
time.sleep(120)
driver.close()
except:
driver.switch_to.window(driver.window_handles[1])
driver.close()
driver.switch_to.window(driver.window_handles[0])
else:
print "mac bitmedi",game
driver.close()
except:
print "Sistem hatasi, browser yeniden baslatiliyor"
driver.close()
game+=1
group+=1
week+=1
print "basarili",phase
phase+=1
def processGame(url,userN,passW,driver):
#Simplified version
header = "Post Header"
postText = "Post Content"
wp = Client('http://mywebsite.com/xmlrpc.php',userN,passW)
post = WordPressPost()
post.title = header.decode('iso-8859-9')
post.content = postText.decode('iso-8859-9')
post.id = wp.call(posts.NewPost(post))
post.terms_names = {
'post_tag': tags,
'category': cat,
}
post.post_status = 'draft'
wp.call(posts.EditPost(post.id, post))
if __name__ == "__main__":
url="http://www.eurocupbasketball.com/eurocup/games/results"
Crawler(url)
正如您所看到的,我在每次查询后关闭并重新打开驱动程序,它不像以前那样,它只是在页面之间导航。然而,有人建议我长期会议可能会导致这个问题,所以我把它改成了这种形式。我也搜索了 socket.error:[Errno 111]连接被拒绝,并且我的理解有很多可能的原因,但是我找不到任何与我的问题匹配的解决方案。什么可能导致这个问题?