python多线程.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import queue, requests
  2. from threading import Thread
  3. from rs_zxgk.shixin.shixin import Get_Info
  4. def spider(data9):
  5. data9["obj"].main()
  6. # 所有的操作 CURD 请求都写到这个函数中 data9 是一个任务 就相当于一个url
  7. # 获取代理什么的,请求,全部写到这里面
  8. # TODO requests 里面 timeout 要写,否则线程会卡死
  9. # url = 'https://www.baidu.com/'
  10. # headers = {
  11. # 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36',
  12. # }
  13. # # requests 必须加timeout 参数,要不然会线程卡死
  14. # res = requests.get(url=url, headers=headers, timeout=10)
  15. # print('请求次数为', data9['req'], '开始时间为', data9['s'], '结束时间为', int(time.time()), '结果为: ', res.status_code)
  16. q = queue.Queue(20)
  17. if __name__ == "__main__":
  18. class Work(Thread):
  19. def run(self):
  20. while True:
  21. spider(q.get())
  22. for i in range(10): # 控制线程数,相当于开10个线程
  23. Work().start()
  24. import time
  25. info = Get_Info()
  26. s = int(time.time())
  27. try:
  28. for conn in range(1, 100000):
  29. q.put({'req': conn, 's': s, "obj": info}, timeout=None)
  30. except Exception as e:
  31. pass