斗图网爬虫

落日映苍穹つ 2022-05-25 12:37 380阅读 0赞
  1. import urllib
  2. from urllib import request
  3. # from lxml import etree
  4. import os
  5. import time
  6. from lxml import etree
  7. import requests
  8. #导入线程 池模块
  9. from multiprocessing.dummy import Pool as Treadpool
  10. count=0 #变量对已经下载图片数量进行计数
  11. root="G://doutuwang//"#图片保存的根目录文件夹
  12. def get_url(page_url):
  13. html = requests.get(page_url)
  14. selector = etree.HTML(html.text)
  15. "//*[@id='pic-detail']/div/div[2]/div[2]/ul/li/div/div/a[5]/img/@data-original"
  16. img_div = selector.xpath("//*[@id='pic-detail']/div/div[2]/div[2]/ul/li/div/div")
  17. print(len(img_div))
  18. img_url=img_div[0].xpath("./a/img/@data-original")
  19. for i in img_url:
  20. # print(str(i))
  21. download_img(str(i))
  22. # print(img_url)
  23. # download_img(img_url)
  24. #将图片保存到本地
  25. def download_img(url):
  26. global count
  27. path=root+url.split("/")[-1]#图片的名称
  28. urllib.request.urlretrieve(url,filename=path)
  29. print("第",count,"张已经保存完毕!")
  30. count+=1
  31. if __name__=='__main__':
  32. page_url_list=[]
  33. for i in range(1,20):
  34. page_url = 'http://www.doutula.com/photo/list/?page='+str(i)
  35. # get_url(page_url)
  36. page_url_list.append(page_url)
  37. #创建线程池
  38. pool=Treadpool(8)
  39. #线程开始时间
  40. start_time=time.clock()
  41. #线程映射
  42. pool.map(get_url,page_url_list)
  43. #线程池关闭
  44. pool.close()
  45. #主线程等待子线程
  46. pool.join()
  47. #线程结束时间
  48. end_time=time.clock()
  49. #计算爬去所用的总时间
  50. time_total=end_time-start_time
  51. print("总共耗时:",time_total,'s')

发表评论

表情:
评论列表 (有 0 条评论,380人围观)

还没有评论,来说两句吧...

相关阅读

    相关 之手隐私政策

    欢迎您使用斗图之手软件服务(以下简称“本软件”)。为保证您的权益,便于更好地使用本软件服务,请您务必在注册前认真阅读本协议,若您阅读并接受本协议,使用本软件提供的产品和服务,即