Python Webscraping-由于超时请求而导致不一致的结果

Python Webscraping-由于超时请求而导致不一致的结果,python,python-3.x,web-scraping,beautifulsoup,Python,Python 3.x,Web Scraping,Beautifulsoup,我正在使用Python 3.6从网站上抓取一些公共数据。 我创建了一长串需要刮取的页面URL(10k+)。 我解析每一个,生成一个包含所有相关信息的列表,然后将其附加到一个综合列表中 我曾经收到一些超时请求错误,所以我尝试使用try/except来处理它 代码运行时没有明显的错误,但是,重新运行代码时,我得到了非常不一致的结果:最终列表的长度发生了实质性变化,我可以证明并非所有页面都已被解析。 因此,我的代码在某个点关闭,我无法检查在什么点。 不管列表产生多长时间,time_out变量在末尾始终

我正在使用Python 3.6从网站上抓取一些公共数据。 我创建了一长串需要刮取的页面URL(10k+)。 我解析每一个,生成一个包含所有相关信息的列表,然后将其附加到一个综合列表中

我曾经收到一些超时请求错误,所以我尝试使用try/except来处理它

代码运行时没有明显的错误,但是,重新运行代码时,我得到了非常不一致的结果:最终列表的长度发生了实质性变化,我可以证明并非所有页面都已被解析。

因此,我的代码在某个点关闭,我无法检查在什么点。 不管列表产生多长时间,time_out变量在末尾始终为零

感谢您的帮助! 最好的

以下是我认为是代码的相关部分

import requests
from bs4 import BeautifulSoup 
headers = {'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36'}

LIST_OF_URLS = ['URL','URL','URL']

FINAL_LIST = []
timed_out = 0

    for URL in LIST_OF_URLS:
        try:
            result_page = BeautifulSoup(requests.get(URL, headers=headers,timeout=10).text, 'html.parser') 
        except requests.exceptions.Timeout:
            timed_out+=1

        #The loop produces a LIST

    FINAL_LIST.append(LIST)

在第16行,
LIST
做了什么?它表示循环生成一个列表,然后附加到最终的列表中。不清楚,我的错。我建议使用Python的本机日志库(
import logging
)来记录有关失败HTTP请求的信息。也许在两次请求之间,您的互联网正在崩溃?其他任何人都很难可靠地重现这些错误。其中一个问题是由于互联网不稳定,我修复了它。然而,总体问题仍然存在。首先,我将尝试使用Python的本机日志库。谢谢您是否尝试过收集实际超时的URL,而不是增加计数,然后重新对其进行爬网?第16行的
LIST
做了什么?这表示循环生成了一个列表,然后附加到最终的\u列表中。不清楚,我的错。我建议使用Python的本机日志库(
import logging
)来记录有关失败HTTP请求的信息。也许在两次请求之间,您的互联网正在崩溃?其他任何人都很难可靠地重现这些错误。其中一个问题是由于互联网不稳定,我修复了它。然而,总体问题仍然存在。首先,我将尝试使用Python的本机日志库。谢谢您是否尝试过收集实际超时的URL,而不是增加计数,然后重新对其进行爬网?