新手练习python 爬虫遇到,使用多线程获取数据,保存到csv 文件,出现数据重复,不知道怎么处理?
我的代码
[https://github.com/huchiwen/L...]
代码基本逻辑如下:
- 获取网站的acckey 和 accnum ,用bs解析,从静态html页面获取acckey 和accnum(接口需要这个两个参数)
- 使用多线程获取acckey 和accnum,因为数据太多了,不用多线程,耗时间
- 保存到csv
现在遇到的问题是:
使用多线程下载出现重复的acckey和accnum.
导致csv 文件很大.
数据出现,重复,图片(部分截图)如下:
大概滤了一下你的代码,你这不叫多线程干一件事,你这是多线程自己干自己的一件事。
提供一下思路吧。
你可以单独起一个线程,或者主线程来搞,生成页码 也就是你的
page_code
。然后放到一个队列中。这个叫生产者
。然后,多线程消费这个队列,去请求数据然后写csv文件。不过这块建议自己写自己的文件。
最后,再将这些csv文件合并一下。
多线程处理数据,一定要注意分工与合并,其实就是ForkJoin。把一个大工程,合理的划分成一些小工程,然后再把这些小工程的结果数据合并一下。
给你个示例: