一个将多线程多进程结合爬取图片网站的示例

在图片网站爬取图片时候,我们需要取得具体每张图片的url地址,然后下载到电脑保存下来。这其中,对时间消耗最多的步骤是保存图片到本地硬盘,机械硬盘的读写性能速度较慢。如果采取单线程单进程的话,在读写的同时没法进行其他的操作,只能等待,浪费了性能。
对单个存有图片的页面而言,如果可以采取多线程的话,在写入图片的同时还能去请求新的图片地址保存到列表将会更合理的利用时间。因为图片网站,图片存放在很多页面里,所以对多个存有图片的页面而言采取 多进程,同时对多个有图片的页面进行爬取任务。
至于你要爬取什么样的图片网站, 我不得而知,不同网站展示图片界面不同或许与我的有差异但主体思路就这样。

接下来上代码:

import requests ,time,threading
from  lxml.html import etree
from  fake_useragent import UserAgent
from multiprocessing import Pool


#得到自己爬取页网址
def get_Url(P):

    Url='保密'.format(P)
    return Url
#得到10个尤物的名字
def get_names(Url):
    all_names=[]
    header = {
   'User-Agent': UserAgent().chrome}
    response = requests.get(url=Url, headers=header)
    response.encoding = 'GB18030'
    e = etree.HTML(response.text)
    picture_name = e.xpath('//h2/a')
    for k in range(10):
        all_names.append(picture_name[k].text)
    return all_names
#得到第i个尤物的名字 i 0 9
def get_i_name(all_names,i):
    i_name=all_names[i]
    return i_name

#得到10个尤物的首网址
def get_url(Url):
    all_urls=[]
    header = {
   'User-Agent' : UserAgent().chrome
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值