首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当web抓取大量数据时,使用退出代码-1073740791 (0xc0000409)完成的处理

当web抓取大量数据时,使用退出代码-1073740791 (0xc0000409)完成的处理
EN

Stack Overflow用户
提问于 2018-10-27 19:34:55
回答 1查看 985关注 0票数 0

我写了一个脚本来做一些网页抓取。网页上有javascript,所以在使用PyQT5抓取所需内容之前,我使用BeautifulSoup来呈现页面。

但是,我有很多页面要抓取(超过10,000页),我试图将内容存储在一个dict中,然后将其转换为json文件。我试图周期性地定期编写json文件,因为我认为由于刮伤的数量,dict变得太大了。还收到了出口代码。

在另一个线程中,有人建议更新视频卡驱动程序(不知道为什么会影响我的Python脚本,但我尝试了一下。没有进展。

EN

回答 1

Stack Overflow用户

发布于 2018-10-27 19:34:55

问题(至少在这种情况下)是字典变得太大了。我解决这个问题的方法是每1000次刮擦,在硬盘上通过在文件名中添加一个迭代器将日期转储到json格式,清除dict,增加迭代器,并继续抓取。

代码语言:javascript
运行
复制
... while/for loop iterating over all web pages
    data_table = soup.find('table', attrs={'class', 'dataTable'})
    ... process data into dict d
    data[id] = d
    if id % 1000 == 0:
        with open(r'datafile-{num}.json'.format(num=id//1000)) as file:
            json.dump(data, file)
        data.clear()
    id += 1  # increment the key for dict data and counter for file separation

这并不理想,因为我现在有很多文件,但至少我有我想要的数据。如果其他人在Windows上获得退出代码- -1073740791 (0xc0000409),如果您将大量数据转储到字典中,这很可能是原因所在。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53025606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档