Python Selenium socket.error

时间:2016-01-20 10:30:24

标签: python wordpress sockets selenium vps

我有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]连接被拒绝,并且我的理解有很多可能的原因,但是我找不到任何与我的问题匹配的解决方案。什么可能导致这个问题?

0 个答案:

没有答案