为什么不在翻车后复习一下?

2024-09-30 20:22:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用python和bs4为Flipkart构建一个爬虫程序。我做得也很成功,但是在试图抓取超过13-14页的评论时出现了一个问题。直到13页,刮板工作正常,但一旦我到了第14页,它说有什么不对劲和分页符(页面上什么都没有出现,只有一条信息说有些东西不对)。查看下面的截图:


enter image description here

因此,在试图弄清楚这里是否有模式时,我不断刷新页面,发现有时数据可能在刷新5次或刷新30次后出现(没有固定模式),因此我编写了这部分代码来处理这种情况:


for count in range(1,6521):
    nav_btns = browser.find_elements_by_class_name('_33m_Yg')

    button = ""

    for btn in nav_btns:
        number = int(btn.text)
        if(number==count):
            button = btn
            break

    try :
        button.send_keys(Keys.RETURN)
    except Exception as e :
        break   

    ##Handling the exception cases. [Something is not right.]
    isTImedout = True
    while isTImedout:
        try:
            WebDriverWait(browser, timeout=10).until(EC.presence_of_all_elements_located((By.CLASS_NAME, "_2xg6Ul")))
            isTImedout = False
            print("Scraping... %d" % page)
        except TimeoutException as ex:
            browser.refresh()
            isTImedout = True

最后一次效果很好,我成功地刮掉了100多页。但是今天当我再次尝试使用代码时,代码只是不断刷新第14页,而该页上根本没有任何数据,我尝试了多次刷新第14页之后的其他页面,但根本没有显示任何内容。Here是我要刮的页面。在

我想知道这是什么问题,我该如何处理。在


Tags: 数据代码inbrowsernumberforcount模式