python抓取网页数据(Windows上收到退出代码-1073740791(0xc0000409)的建议)
优采云 发布时间: 2021-12-13 02:05python抓取网页数据(Windows上收到退出代码-1073740791(0xc0000409)的建议)
我写了一个脚本来对网页进行一些网络抓取。网页上有javascript,所以我用PyQT5渲染页面,然后用BeautifulSoup抓取需要的内容。
但是,我有很多页面要抓取(超过 10,000 个),我正在尝试将内容存储在 dict 中,稍后我会将其转换为 json 文件。我尝试定期编写json文件,因为我认为由于划痕的数量,dict变得太大了。仍然收到退出代码。
在另一个线程上,有人提出了关于更新显卡驱动程序的建议(我不知道为什么这会影响我的Python脚本,但我试过了。没有进展。
解决方案
问题(至少在这种情况下)是字典变得太大了。我对这个问题的解决方法是每1000次爬取,通过在文件名后附加迭代器,将日期转储到硬盘上的json格式,清除dict,添加迭代器,然后继续爬取。
... 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
这并不理想,因为现在我有很多文件,但至少我有我想要的数据。如果其他人收到退出代码 -1073740791(0xc0000409) 在 Windows 上,如果您将大量数据转储到字典中,这很可能是原因。