xianhu / PSpider

简单易用的Python爬虫框架,QQ交流群:597510560
https://github.com/xianhu/PSpider
BSD 2-Clause "Simplified" License
1.83k stars 504 forks source link

why my spider rerun twice? #25

Closed Kiris-tingna closed 6 years ago

Kiris-tingna commented 6 years ago
2017-11-05 20:12:01,076 WARNING ThreadPool start: urls_count=1, fetcher_num=10, is_over=True
2017-11-05 20:12:06,091 WARNING ThreadPool status: running_tasks=2; fetch:[NOT=0, SUCC=8, FAIL=0, 8/(5s)]; parse:[NOT=0, SUCC=8, FAIL=0, 8/(5s)]; save:[NOT=211, SUCC=6, FAIL=0, 6/(5s)]; total_seconds=5
2017-11-05 20:12:11,107 WARNING ThreadPool status: running_tasks=2; fetch:[NOT=0, SUCC=15, FAIL=0, 7/(5s)]; parse:[NOT=0, SUCC=15, FAIL=0, 7/(5s)]; save:[NOT=407, SUCC=16, FAIL=0, 10/(5s)]; total_seconds=10
2017-11-05 20:12:16,122 WARNING ThreadPool status: running_tasks=2; fetch:[NOT=0, SUCC=19, FAIL=0, 4/(5s)]; parse:[NOT=0, SUCC=19, FAIL=0, 4/(5s)]; save:[NOT=531, SUCC=28, FAIL=0, 12/(5s)]; total_seconds=15
2017-11-05 20:12:21,138 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 2/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 2/(5s)]; save:[NOT=591, SUCC=31, FAIL=0, 3/(5s)]; total_seconds=20
2017-11-05 20:12:26,151 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=579, SUCC=43, FAIL=0, 12/(5s)]; total_seconds=25
2017-11-05 20:12:31,161 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=568, SUCC=54, FAIL=0, 11/(5s)]; total_seconds=30
2017-11-05 20:12:36,176 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=566, SUCC=56, FAIL=0, 2/(5s)]; total_seconds=35
2017-11-05 20:12:41,190 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=561, SUCC=61, FAIL=0, 5/(5s)]; total_seconds=40
2017-11-05 20:12:46,202 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=560, SUCC=62, FAIL=0, 1/(5s)]; total_seconds=45
2017-11-05 20:12:51,218 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=558, SUCC=64, FAIL=0, 2/(5s)]; total_seconds=50
2017-11-05 20:12:56,227 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=554, SUCC=68, FAIL=0, 4/(5s)]; total_seconds=55
2017-11-05 20:13:01,230 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=548, SUCC=74, FAIL=0, 6/(5s)]; total_seconds=60
2017-11-05 20:13:06,245 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=522, SUCC=100, FAIL=0, 26/(5s)]; total_seconds=65
2017-11-05 20:13:11,261 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=514, SUCC=108, FAIL=0, 8/(5s)]; total_seconds=70
2017-11-05 20:13:16,270 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=495, SUCC=127, FAIL=0, 19/(5s)]; total_seconds=75
2017-11-05 20:13:21,277 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=489, SUCC=133, FAIL=0, 6/(5s)]; total_seconds=80
2017-11-05 20:13:26,282 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=477, SUCC=145, FAIL=0, 12/(5s)]; total_seconds=85
2017-11-05 20:13:31,298 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=460, SUCC=162, FAIL=0, 17/(5s)]; total_seconds=90
2017-11-05 20:13:36,300 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=453, SUCC=169, FAIL=0, 7/(5s)]; total_seconds=95
2017-11-05 20:13:41,315 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=447, SUCC=175, FAIL=0, 6/(5s)]; total_seconds=100
2017-11-05 20:13:46,326 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=441, SUCC=181, FAIL=0, 6/(5s)]; total_seconds=105
2017-11-05 20:13:51,342 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=436, SUCC=186, FAIL=0, 5/(5s)]; total_seconds=110
2017-11-05 20:13:56,357 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=423, SUCC=199, FAIL=0, 13/(5s)]; total_seconds=115
2017-11-05 20:14:01,362 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=412, SUCC=210, FAIL=0, 11/(5s)]; total_seconds=120
2017-11-05 20:14:06,378 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=401, SUCC=221, FAIL=0, 11/(5s)]; total_seconds=125
2017-11-05 20:14:11,394 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=388, SUCC=234, FAIL=0, 13/(5s)]; total_seconds=130
2017-11-05 20:14:16,402 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=383, SUCC=239, FAIL=0, 5/(5s)]; total_seconds=135
2017-11-05 20:14:21,405 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=379, SUCC=243, FAIL=0, 4/(5s)]; total_seconds=140
2017-11-05 20:14:26,421 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=361, SUCC=261, FAIL=0, 18/(5s)]; total_seconds=145
2017-11-05 20:14:31,430 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=352, SUCC=270, FAIL=0, 9/(5s)]; total_seconds=150
2017-11-05 20:14:36,443 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=351, SUCC=271, FAIL=0, 1/(5s)]; total_seconds=155
2017-11-05 20:14:41,459 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=350, SUCC=272, FAIL=0, 1/(5s)]; total_seconds=160
2017-11-05 20:14:46,461 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=343, SUCC=279, FAIL=0, 7/(5s)]; total_seconds=165
2017-11-05 20:14:51,467 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=335, SUCC=287, FAIL=0, 8/(5s)]; total_seconds=170
2017-11-05 20:14:56,483 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=334, SUCC=288, FAIL=0, 1/(5s)]; total_seconds=175
2017-11-05 20:15:01,484 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=331, SUCC=291, FAIL=0, 3/(5s)]; total_seconds=180
2017-11-05 20:15:06,490 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=331, SUCC=291, FAIL=0, 0/(5s)]; total_seconds=185
2017-11-05 20:15:11,506 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=330, SUCC=292, FAIL=0, 1/(5s)]; total_seconds=190
2017-11-05 20:15:16,519 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=313, SUCC=309, FAIL=0, 17/(5s)]; total_seconds=195
2017-11-05 20:15:21,530 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=309, SUCC=313, FAIL=0, 4/(5s)]; total_seconds=200
2017-11-05 20:15:26,545 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=298, SUCC=324, FAIL=0, 11/(5s)]; total_seconds=205
2017-11-05 20:15:31,550 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=286, SUCC=336, FAIL=0, 12/(5s)]; total_seconds=210
2017-11-05 20:15:36,566 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=277, SUCC=345, FAIL=0, 9/(5s)]; total_seconds=215
2017-11-05 20:15:41,582 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=271, SUCC=351, FAIL=0, 6/(5s)]; total_seconds=220
2017-11-05 20:15:46,592 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=258, SUCC=364, FAIL=0, 13/(5s)]; total_seconds=225
2017-11-05 20:15:51,593 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=257, SUCC=365, FAIL=0, 1/(5s)]; total_seconds=230
2017-11-05 20:15:56,609 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=249, SUCC=373, FAIL=0, 8/(5s)]; total_seconds=235
2017-11-05 20:16:01,624 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=241, SUCC=381, FAIL=0, 8/(5s)]; total_seconds=240
2017-11-05 20:16:06,625 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=237, SUCC=385, FAIL=0, 4/(5s)]; total_seconds=245
2017-11-05 20:16:11,641 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=235, SUCC=387, FAIL=0, 2/(5s)]; total_seconds=250
2017-11-05 20:16:16,656 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=232, SUCC=390, FAIL=0, 3/(5s)]; total_seconds=255
2017-11-05 20:16:21,672 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=232, SUCC=390, FAIL=0, 0/(5s)]; total_seconds=260
2017-11-05 20:16:26,688 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=226, SUCC=396, FAIL=0, 6/(5s)]; total_seconds=265
2017-11-05 20:16:31,703 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=222, SUCC=400, FAIL=0, 4/(5s)]; total_seconds=270
2017-11-05 20:16:36,716 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=219, SUCC=403, FAIL=0, 3/(5s)]; total_seconds=275
2017-11-05 20:16:41,728 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=214, SUCC=408, FAIL=0, 5/(5s)]; total_seconds=280
2017-11-05 20:16:46,744 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=211, SUCC=411, FAIL=0, 3/(5s)]; total_seconds=285
2017-11-05 20:16:51,750 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=207, SUCC=415, FAIL=0, 4/(5s)]; total_seconds=290
2017-11-05 20:16:56,765 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=193, SUCC=429, FAIL=0, 14/(5s)]; total_seconds=295
2017-11-05 20:17:01,781 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=191, SUCC=431, FAIL=0, 2/(5s)]; total_seconds=300
2017-11-05 20:17:06,796 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=183, SUCC=439, FAIL=0, 8/(5s)]; total_seconds=305
2017-11-05 20:17:11,797 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=172, SUCC=450, FAIL=0, 11/(5s)]; total_seconds=310
2017-11-05 20:17:16,813 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=158, SUCC=464, FAIL=0, 14/(5s)]; total_seconds=315
2017-11-05 20:17:21,828 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=155, SUCC=467, FAIL=0, 3/(5s)]; total_seconds=320
2017-11-05 20:17:26,843 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=145, SUCC=477, FAIL=0, 10/(5s)]; total_seconds=325
2017-11-05 20:17:31,859 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=140, SUCC=482, FAIL=0, 5/(5s)]; total_seconds=330
2017-11-05 20:17:36,864 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=139, SUCC=483, FAIL=0, 1/(5s)]; total_seconds=335
2017-11-05 20:17:41,880 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=135, SUCC=487, FAIL=0, 4/(5s)]; total_seconds=340
2017-11-05 20:17:46,895 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=118, SUCC=504, FAIL=0, 17/(5s)]; total_seconds=345
2017-11-05 20:17:51,902 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=106, SUCC=516, FAIL=0, 12/(5s)]; total_seconds=350
2017-11-05 20:17:56,917 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=90, SUCC=532, FAIL=0, 16/(5s)]; total_seconds=355
2017-11-05 20:18:01,933 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=86, SUCC=536, FAIL=0, 4/(5s)]; total_seconds=360
2017-11-05 20:18:06,949 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=84, SUCC=538, FAIL=0, 2/(5s)]; total_seconds=365
2017-11-05 20:18:11,960 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=83, SUCC=539, FAIL=0, 1/(5s)]; total_seconds=370
2017-11-05 20:18:16,975 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=74, SUCC=548, FAIL=0, 9/(5s)]; total_seconds=375
2017-11-05 20:18:21,983 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=59, SUCC=563, FAIL=0, 15/(5s)]; total_seconds=380
2017-11-05 20:18:26,999 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=52, SUCC=570, FAIL=0, 7/(5s)]; total_seconds=385
2017-11-05 20:18:32,014 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=43, SUCC=579, FAIL=0, 9/(5s)]; total_seconds=390
2017-11-05 20:18:37,030 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=34, SUCC=588, FAIL=0, 9/(5s)]; total_seconds=395
2017-11-05 20:18:42,041 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=28, SUCC=594, FAIL=0, 6/(5s)]; total_seconds=400
2017-11-05 20:18:47,053 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=27, SUCC=595, FAIL=0, 1/(5s)]; total_seconds=405
2017-11-05 20:18:52,063 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=27, SUCC=595, FAIL=0, 0/(5s)]; total_seconds=410
2017-11-05 20:18:57,079 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=22, SUCC=600, FAIL=0, 5/(5s)]; total_seconds=416
2017-11-05 20:19:02,095 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=16, SUCC=606, FAIL=0, 6/(5s)]; total_seconds=421
2017-11-05 20:19:07,110 WARNING ThreadPool status: running_tasks=0; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=0, SUCC=623, FAIL=0, 17/(5s)]; total_seconds=426
2017-11-05 20:19:12,115 WARNING ThreadPool status: running_tasks=0; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=0, SUCC=623, FAIL=0, 0/(5s)]; total_seconds=431
2017-11-05 20:19:12,115 WARNING ThreadPool end: fetcher_num=10, is_over=True, fetch:[SUCC=21, FAIL=0]; parse[SUCC=21, FAIL=0]; save:[SUCC=623, FAIL=0]
2017-11-05 20:19:12,115 WARNING ThreadPool start: urls_count=1, fetcher_num=10, is_over=True
2017-11-05 20:19:17,129 WARNING ThreadPool status: running_tasks=2; fetch:[NOT=0, SUCC=6, FAIL=0, 6/(5s)]; parse:[NOT=0, SUCC=6, FAIL=0, 6/(5s)]; save:[NOT=147, SUCC=7, FAIL=0, 7/(5s)]; total_seconds=5
2017-11-05 20:19:22,131 WARNING ThreadPool status: running_tasks=2; fetch:[NOT=0, SUCC=11, FAIL=0, 5/(5s)]; parse:[NOT=0, SUCC=11, FAIL=0, 5/(5s)]; save:[NOT=291, SUCC=19, FAIL=0, 12/(5s)]; total_seconds=10
2017-11-05 20:19:27,143 WARNING ThreadPool status: running_tasks=2; fetch:[NOT=0, SUCC=19, FAIL=0, 8/(5s)]; parse:[NOT=0, SUCC=19, FAIL=0, 8/(5s)]; save:[NOT=531, SUCC=28, FAIL=0, 9/(5s)]; total_seconds=15
2017-11-05 20:19:32,158 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 2/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 2/(5s)]; save:[NOT=591, SUCC=31, FAIL=0, 3/(5s)]; total_seconds=20
2017-11-05 20:19:37,174 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=574, SUCC=48, FAIL=0, 17/(5s)]; total_seconds=25
2017-11-05 20:19:42,189 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=568, SUCC=54, FAIL=0, 6/(5s)]; total_seconds=30
2017-11-05 20:19:47,203 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=564, SUCC=58, FAIL=0, 4/(5s)]; total_seconds=35
2017-11-05 20:19:52,205 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=561, SUCC=61, FAIL=0, 3/(5s)]; total_seconds=40
2017-11-05 20:19:57,221 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=560, SUCC=62, FAIL=0, 1/(5s)]; total_seconds=45
2017-11-05 20:20:02,236 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=558, SUCC=64, FAIL=0, 2/(5s)]; total_seconds=50
2017-11-05 20:20:07,252 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=554, SUCC=68, FAIL=0, 4/(5s)]; total_seconds=55
2017-11-05 20:20:12,267 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=550, SUCC=72, FAIL=0, 4/(5s)]; total_seconds=60
2017-11-05 20:20:17,281 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=545, SUCC=77, FAIL=0, 5/(5s)]; total_seconds=65
2017-11-05 20:20:22,292 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=517, SUCC=105, FAIL=0, 28/(5s)]; total_seconds=70
2017-11-05 20:20:27,298 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=502, SUCC=120, FAIL=0, 15/(5s)]; total_seconds=75
2017-11-05 20:20:32,313 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=491, SUCC=131, FAIL=0, 11/(5s)]; total_seconds=80
2017-11-05 20:20:37,329 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=478, SUCC=144, FAIL=0, 13/(5s)]; total_seconds=85
2017-11-05 20:20:42,344 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=469, SUCC=153, FAIL=0, 9/(5s)]; total_seconds=90
2017-11-05 20:20:47,360 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=455, SUCC=167, FAIL=0, 14/(5s)]; total_seconds=95
2017-11-05 20:20:52,362 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=450, SUCC=172, FAIL=0, 5/(5s)]; total_seconds=100
2017-11-05 20:20:57,372 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=437, SUCC=184, FAIL=1, 13/(5s)]; total_seconds=105
2017-11-05 20:21:02,388 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=436, SUCC=185, FAIL=1, 1/(5s)]; total_seconds=110
2017-11-05 20:21:07,403 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=423, SUCC=198, FAIL=1, 13/(5s)]; total_seconds=115
2017-11-05 20:21:12,419 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=412, SUCC=209, FAIL=1, 11/(5s)]; total_seconds=120
2017-11-05 20:21:17,433 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=398, SUCC=223, FAIL=1, 14/(5s)]; total_seconds=125
2017-11-05 20:21:22,446 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=388, SUCC=233, FAIL=1, 10/(5s)]; total_seconds=130
2017-11-05 20:21:27,462 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=383, SUCC=238, FAIL=1, 5/(5s)]; total_seconds=135
2017-11-05 20:21:32,477 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=375, SUCC=246, FAIL=1, 8/(5s)]; total_seconds=140
2017-11-05 20:21:37,493 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=359, SUCC=261, FAIL=2, 16/(5s)]; total_seconds=145
2017-11-05 20:21:42,508 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=352, SUCC=268, FAIL=2, 7/(5s)]; total_seconds=150
2017-11-05 20:21:47,524 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=351, SUCC=269, FAIL=2, 1/(5s)]; total_seconds=155
2017-11-05 20:21:52,530 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=347, SUCC=273, FAIL=2, 4/(5s)]; total_seconds=160
2017-11-05 20:21:57,536 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=336, SUCC=284, FAIL=2, 11/(5s)]; total_seconds=165
2017-11-05 20:22:02,550 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=334, SUCC=286, FAIL=2, 2/(5s)]; total_seconds=170
2017-11-05 20:22:07,566 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=334, SUCC=286, FAIL=2, 0/(5s)]; total_seconds=175
2017-11-05 20:22:12,568 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=331, SUCC=289, FAIL=2, 3/(5s)]; total_seconds=180
2017-11-05 20:22:17,584 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=330, SUCC=290, FAIL=2, 1/(5s)]; total_seconds=185
2017-11-05 20:22:22,585 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=323, SUCC=297, FAIL=2, 7/(5s)]; total_seconds=190
2017-11-05 20:22:27,600 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=309, SUCC=311, FAIL=2, 14/(5s)]; total_seconds=195
2017-11-05 20:22:32,606 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=307, SUCC=313, FAIL=2, 2/(5s)]; total_seconds=200
2017-11-05 20:22:37,621 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=288, SUCC=332, FAIL=2, 19/(5s)]; total_seconds=205
2017-11-05 20:22:42,636 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=279, SUCC=341, FAIL=2, 9/(5s)]; total_seconds=210
2017-11-05 20:22:47,638 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=273, SUCC=347, FAIL=2, 6/(5s)]; total_seconds=215
2017-11-05 20:22:52,651 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=262, SUCC=358, FAIL=2, 11/(5s)]; total_seconds=220
2017-11-05 20:22:57,661 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=258, SUCC=362, FAIL=2, 4/(5s)]; total_seconds=225
2017-11-05 20:23:02,676 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=251, SUCC=369, FAIL=2, 7/(5s)]; total_seconds=230
2017-11-05 20:23:07,692 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=245, SUCC=375, FAIL=2, 6/(5s)]; total_seconds=235
2017-11-05 20:23:12,707 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=238, SUCC=382, FAIL=2, 7/(5s)]; total_seconds=240
2017-11-05 20:23:17,723 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=235, SUCC=385, FAIL=2, 3/(5s)]; total_seconds=245
2017-11-05 20:23:22,739 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=234, SUCC=386, FAIL=2, 1/(5s)]; total_seconds=250
2017-11-05 20:23:27,740 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=232, SUCC=388, FAIL=2, 2/(5s)]; total_seconds=255
2017-11-05 20:23:32,745 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=229, SUCC=391, FAIL=2, 3/(5s)]; total_seconds=260
2017-11-05 20:23:37,760 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=223, SUCC=397, FAIL=2, 6/(5s)]; total_seconds=265
2017-11-05 20:23:42,776 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=219, SUCC=401, FAIL=2, 4/(5s)]; total_seconds=270
2017-11-05 20:23:47,791 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=217, SUCC=403, FAIL=2, 2/(5s)]; total_seconds=275
2017-11-05 20:23:52,807 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=211, SUCC=409, FAIL=2, 6/(5s)]; total_seconds=280
2017-11-05 20:23:57,820 WARNING ThreadPool status: running_tasks=1; fetch:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; parse:[NOT=0, SUCC=21, FAIL=0, 0/(5s)]; save:[NOT=209, SUCC=411, FAIL=2, 2/(5s)]; total_seconds=285

Process finished with exit code 1

I stop it when I found it rerun twice

xianhu commented 6 years ago

you can report your main python file

Kiris-tingna commented 6 years ago
import spider
import logging
from crawler_jiandan.jd_parser import JdParser, JdSaver

logging.basicConfig(level=logging.WARNING, format="%(asctime)s\t%(levelname)s\t%(message)s")

# three base components
fetcher = spider.Fetcher(max_repeat=3, sleep_time=1)
parser = JdParser(max_deep=20)  # 爬取解析深度
saver = JdSaver(save_pipe=open("jd_spider.csv", "w", encoding='utf-8'))

# define url_filter capacity=None will use set and a number will use redis
black_patterns = (spider.CONFIG_URLPATTERN_FILES,)  # 黑名单
white_patterns = (r"^http[s]{0,1}://(jandan\.){0,1}(net)",)  # 白名单
url_filter = spider.UrlFilter(
    black_patterns=black_patterns,
    white_patterns=white_patterns,
    capacity=None)

# initial web_spider
web_spider = spider.Spider(fetcher, parser, saver, url_filter=url_filter, monitor_sleep_time=5)

# add start url
web_spider.set_start_url("http://jandan.net/pic/", keys=("jiandan",))
result = web_spider.start_work_and_wait_done(fetcher_num=10, is_over=True)
from spider import Parser, Saver
import datetime
from bs4 import BeautifulSoup
from urllib.parse import urlparse
from spider import make_fetch_images
import os

def add_default_scheme(url):
    if urlparse(url).scheme == 'http' or urlparse(url).scheme == 'https':
        return url
    else:
        return 'http:{url}'.format(url=url)

class JdParser(Parser):
    def htm_parse(self, priority: int, url: str, keys: object, deep: int, content: object) -> (int, list, list):
        """
        parse the content of a url, you can rewrite this function, parameters and return refer to self.working()
        """
        status_code, url_now, html_text = content
        _h = BeautifulSoup(html_text, "html.parser")

        url_list = []
        # produce more page
        if (self._max_deep < 0) or (deep < self._max_deep):
            next_page_list = _h.find_all('a', 'previous-comment-page')
            url_list = [(_url, keys, priority+1) for _url in [add_default_scheme(href.get('href')) for href in next_page_list]]
        # print(url_list)
        images = _h.find_all('a', 'view_img_link')  # images need save
        save_list = [(add_default_scheme(_image.get('href')), datetime.datetime.now()) for _image in images] if images else []
        # print(save_list)
        return 1, url_list, save_list

class JdSaver(Saver):
    def item_save(self, url: str, keys: object, item: (list, tuple)) -> bool:
        """
        save the item of a url, you can rewrite this function, parameters and return refer to self.working()
        """
        self._save_pipe.write(",".join([url, str(keys)] + [str(i) for i in item]) + "\n")
        self._save_pipe.flush()

        # save item
        name, rep = make_fetch_images(item[0])
        try:
            with open(os.path.join('./images/', name), 'wb') as f:
                for chunk in rep.iter_content(chunk_size=1024):
                    f.write(chunk)
        except Exception:
            return False

        return True
xianhu commented 6 years ago

首先: web_spider = spider.Spider(fetcher, parser, saver, url_filter=url_filter, monitor_sleep_time=5) spider模块没有这个Spider类吧? 其次: 我运行了一下你的代码,只是把JdSaver中后半部分删除了,运行正常,并没有出现你说的情况。 你再调试一下试试?

xianhu commented 6 years ago

你可以把日志级别调整为DEBUG,看一下详细的日志输出

Kiris-tingna commented 6 years ago

I solved this problem by put them if __name__ == '__main__':

It is a strange problem.