吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2206|回复: 13
收起左侧

[讨论] 图里吧美女图片 异步协程版 (不开异步速度太慢了)

  [复制链接]
lihu5841314 发表于 2021-6-23 23:21
本帖最后由 lihu5841314 于 2021-6-23 23:24 编辑

[Asm] 纯文本查看 复制代码
import requests,os,re,time
from lxml import  etree
import asyncio
import aiohttp
import aiofile

yin_url = "http://www.tulishe.com/wp-content/themes/modown/timthumb.php?src=http://www.tulishe.com/wp-content/uploads/2021/06/20075128370.jpg&w=2000&h=2000&zc=2&q=1000"


headers ={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.106 Safari/537.36',
"Referer": "http://www.tulishe.com/"
}
def  resp(url):
        response = requests.get(url=url,headers=headers)
        response.encoding = response.apparent_encoding
        return response


def main_img(res):
    img_detail_urls = re.findall(r'<a itemprop="url" rel="bookmark" href="(?P<urls>.*?)" title=',res.text)  #正则真牛比
    return img_detail_urls


def tree(img_url):
    response = resp(img_url)
    img_tree = etree.HTML(response.text)
    img_namedir = re.findall(r'<h1 class="article-title">(?P<name>.*?)</h1>',response.text)
    global img_namedir1
    img_namedir1 = "".join([x.strip() for x in img_namedir])
    img_urls = []
    div_list_yinchang = img_tree.xpath('//div[@id="gallery-2"]/div')[4:]
    print("正在处理隐藏照片---------------")
    for di_yin in div_list_yinchang:
        img_url_yin = di_yin.xpath('./img/@src')[0]
        img_url_yin_zhen =img_url_yin.split("&")[0] + '&w=2000&h=2000&zc=3&q=1000'
        img_urls.append(img_url_yin_zhen)
    div_list = img_tree.xpath('//div[@id="gallery-2"]/div')[:4]
    for di  in div_list:
        img_url = di.xpath('./a/@href')[0]
        img_urls.append(img_url)
    return img_urls


async  def  down(ur):
    async with  aiohttp.ClientSession()  as session:
          async with await  session.get(ur)  as  img_res:
                if  len(ur)>65:
                    img_name = ur.split("/")[-1].split("&")[0]
                    print("正在处理隐藏照片---------------名字")
                    print(img_name)
                else:
                    img_name =ur.split("/")[-1]
                    print("---预览照片名字---")
                if not  os.path.exists("img_tuli/"+img_namedir1):
                    os.makedirs("img_tuli/"+img_namedir1)
                path = "img_tuli/"+ img_namedir1 +'/' +  img_name
                async with aiofile.async_open(path,'wb') as f:
                        conment = await  img_res.read()
                        await f.write(conment)
                        print(path,"下载完成")

def  main():
    for i in range(1, 2):  #一共870多页
        url = f"http://www.tulishe.com/page/{i}"
        response = resp(url)
        img_detail_urls = main_img(response)
        for  url in  img_detail_urls:
              img_urls = tree(url)
              tasks = []
              for ur in img_urls:
                  task =asyncio.ensure_future(down(ur))
                  tasks.append(task)
              loop.run_until_complete(asyncio.wait(tasks))



if __name__ == '__main__':
    start = time.time()
    loop = asyncio.get_event_loop()  #建立事件循环
    main()
    print('一共耗时',time.time()-start)


免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
AirTed + 1 + 1 大晚上的,睡不着【狗头】

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| lihu5841314 发表于 2021-6-24 00:37
Darkline 发表于 2021-6-24 00:22
反馈一下   很多图片爬取出来无法显示,只有部分图片是正常的,大概每个目录有一半左右是无法读取的。

明天看看  我没试过
smartzw 发表于 2021-6-24 07:41
小豆熊 发表于 2021-6-24 09:26
为啥这个网址我这边访问不了,老是被拦截,而且点击继续访问还没反应
 楼主| lihu5841314 发表于 2021-6-24 09:37
小豆熊 发表于 2021-6-24 09:26
为啥这个网址我这边访问不了,老是被拦截,而且点击继续访问还没反应

拦截你继续不就好了  
1942 发表于 2021-6-24 09:59
隐藏图片的这个:   +'&w=2000&h=2000&zc=3&q=1000'   没必要加,他这个是这个wordpress模板自带的一个图片裁切,有图片地址直接请求图片就行, 你这个图片链接是想把图片放大吧!
你每次请求服务器就要给你裁切一次。
 楼主| lihu5841314 发表于 2021-6-24 10:01
1942 发表于 2021-6-24 09:59
隐藏图片的这个:   +'&w=2000&h=2000&zc=3&q=1000'   没必要加,他这个是这个wordpress模板自带的一个图片 ...

我只知道会变化 就搞大点
1942 发表于 2021-6-24 10:13
lihu5841314 发表于 2021-6-24 10:01
我只知道会变化 就搞大点

人间原图地址就摆在那里,掐头去尾留中间http://***.jpg 就行,你非要让人家裁切一遍,人家服务器要爆了
 楼主| lihu5841314 发表于 2021-6-24 10:15
1942 发表于 2021-6-24 10:13
人间原图地址就摆在那里,掐头去尾留中间http://***.jpg 就行,你非要让人家裁切一遍,人家服务器要爆了: ...

我刚开始也是掐头去尾 他给我404
 楼主| lihu5841314 发表于 2021-6-24 10:15
lihu5841314 发表于 2021-6-24 10:15
我刚开始也是掐头去尾 他给我404

http://www.tulishe.com/wp-content/uploads/2021/06/23121934214.jpg
http://www.tulishe.com/wp-content/uploads/2021/06/23125912119.jpg
http://www.tulishe.com/wp-content/uploads/2021/06/23121935744.jpg
http://www.tulishe.com/wp-content/uploads/2021/06/23125915115.jpg
http://www.tulishe.com/wp-content/uploads/2021/06/23121936229.jpg
http://www.tulishe.com/wp-content/uploads/2021/06/23125921184.jpg
http://www.tulishe.com/wp-content/uploads/2021/06/23121937627.jpg
http://www.tulishe.com/wp-content/uploads/2021/06/23125925928.jpg
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-1 08:13

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表