当前位置: 首页 > news >正文

阿里云备案 网站备案域名网站优化排名首页

阿里云备案 网站备案域名,网站优化排名首页,云服务器 做网站,做网站前端用什么软件提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、多进程与多线程爬取斗图网总结 前言 提示:这里可以添加本文要记录的大概内容: 爬取斗图网 提示:以下是本篇文章正文内…

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、多进程与多线程爬取斗图网
  • 总结


前言

提示:这里可以添加本文要记录的大概内容:

爬取斗图网


提示:以下是本篇文章正文内容,下面案例可供参考

一、多进程与多线程爬取斗图网

"""
网址:https://www.doutupk.com/article/list/?page=2
目标:多进程多线程下载图片
"""import requests
from lxml import etree
from concurrent.futures import ThreadPoolExecutor
from multiprocessing import Process,Queue # 此队列是用的网络
# from queue import Queue #内存层面的。进程通信,它是不行的,
def get_img_src(url,q):# url = "https://www.doutupk.com/article/list/?page=2"# 请求页面源代码的session = requests.Session()session.headers = {"":""#请求头自行添加}resp = session.get(url)tree = etree.HTML(resp.text)a_list = tree.xpath(".//div[@id='home']/div/div[2]/a")# print(len(a_list))for a in a_list:srcs = a.xpath(".//img/@data-original")for src in srcs:# print(src)# download_img(src) # 需要交出去 而不是自己下载q.put(src) ## 吧src传递给队列
def get_img_process(q):with ThreadPoolExecutor(3) as t:# 线程池,相当于一个url一个线程for i in range(2,10):# url = f"https://www.doutupk.com/article/list/?page={i}"t.submit(get_img_src,f"https://www.doutupk.com/article/list/?page={i}",q)# get_img_src(f"https://www.doutupk.com/article/list/?page={i}")# 当整个任务结束了,传递一个结束的型号q.put("结束了...")print("所有图片url获取完毕")def download_img(src):# 下载图片的session_2 = requests.session()session_2.headers = {"":""#请求头自行添加}file_name = src.split("/")[-1]img_resp = session_2.get(src)with open(file_name, mode='wb') as f:f.write(img_resp.content)def download_process(q):  # 这个进程另一个进程里的图片下载地址with ThreadPoolExecutor(10) as t:while 1:# 从队列中提取到srcsrc = q.get() # 接收到这条消息代表任务结束if src == "结束了...":breakt.submit(download_img,src)# download_img(src)print("所有图片下载完毕")
def main():q = Queue()# 负责获取图片下载地址p1 = Process(target=get_img_process,args=(q,))# 表示给进程函数提供参数,必须是(元组)args# 负责下载图片p2 = Process(target=download_process,args=(q,))p1.start()p2.start()if __name__ == '__main__':main()

在这里插入图片描述
在这里插入图片描述


总结

将图片url的提取和图片下载分成两个独立的任务,每一个任务用一个进程,并用多线程提高效率,两个进程的图片url交互使用的Queue队列,确保获取图片url的进程能把url传递给图片下载任务进程。

http://www.mmbaike.com/news/77231.html

相关文章:

  • 白云网站建设多少钱关键词快速上首页排名
  • 网站前端设计理念网站如何宣传推广
  • css div怎么做网站汽车seo是什么意思
  • 做网站ui主要研究内容广州网页定制多少钱
  • 做b2b2c模板网站百度指数总结
  • 内蒙古生产建设兵团四师三十四团知青网站seo的工具有哪些
  • 网络推广的网站app定制开发
  • 网站与经营网站深圳优化网站
  • 如何增加网站板块网站搜索关键词优化
  • 做网站付多少定金免费b站推广网站在线
  • 推进网站建设南昌seo网站推广
  • 类似b站的网站怎么做的下载百度app最新版并安装
  • 上海建网站手机app深圳网络品牌推广公司
  • wordpress托管是什么sem优化软件哪家好
  • 怎么做虚拟的网站牛推网络
  • 免费情感网站哪个好seo页面链接优化
  • ks免费刷粉网站推广马上刷免费做网站软件
  • 购物网站ppt怎么做安徽企业网站建设
  • 如何做二手车网站三叶草gw9356
  • 做盗版视频网站犯法吗独立网站和平台网站
  • 在什么网站可以自承包活来做店铺推广软文300字
  • 服务器ip做网站网站服务器搭建与管理
  • 工信部的网站备案百度软件中心官网
  • 八戒网站做推广青岛百度关键词优化
  • 网站后台百度商桥代码哪里安装百度推广工资多少钱一个月
  • 网站建设与管理卷子今日全国疫情最新消息
  • 免费建站网站企业品牌推广策划方案
  • 徐州手机网站建设公司哪家好百度站长工具怎么用
  • 济南做网站优化哪家好谷歌sem服务商
  • 襄阳谷城网站建设seo网络优化日常工作内容