吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1424|回复: 20
收起左侧

[求助] python 妹子图下载问题

[复制链接]
fa00x 发表于 2022-6-5 19:10
本帖最后由 fa00x 于 2022-6-8 21:22 编辑

[Python] 纯文本查看 复制代码
import requests

from lxml import etree

headers = {

    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Firefox/91.0'
}


for i in range(2800,3482):  #1951,5482
    for j in range(1,40):
        url1 = f'https://www.2meinv.com/article-{i}-{j}.html'
        res = requests.get(url=url1, headers=headers)
        tree = etree.HTML(res.text)
        img_url = tree.xpath('/html/body/div[5]/a/img/@src')[0]
        #print(img_url)
        url3 = requests.get(url = img_url)
        img_name = img_url.split("/")[-1]
        s = 'G:/pych2/pic33'
        with open(s + "\\" + img_name, "wb") as f:
            f.write(url3.content)
        print(img_name)


已更新 剩下兄弟们看你们自己的了
下载心得 一段时间就会屏蔽无法下载。多线程屏蔽时间更快。估计是服务器后台有监控。单线程。timeout自己设置一下。

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

曦月 发表于 2022-6-5 19:31
看到这个网站好熟悉
 楼主| fa00x 发表于 2022-6-5 20:00
Harold123 发表于 2022-6-5 21:09
本帖最后由 Harold123 于 2022-6-5 21:11 编辑

你的img_url是个列表类型,在xpath那行后面加个[0]就好了
img_url = tree.xpath('/html/body/div[5]/a/img/@src')[0]
doudouxiao 发表于 2022-6-5 22:06
支持一下,改天研究一下
曦月 发表于 2022-6-5 22:45
fa00x 发表于 2022-6-5 20:00
大佬别看了。来个解决方案

我说一下我写的思路,就是先遍历主题链接,再依次访问,访问主题链接后,再遍历取出里面的每一个图片链接,你是想直接下载,可以直接在取链接的时候就下载图片
小小邮差 发表于 2022-6-5 23:07
这种第一时间直接搜这个库的就可以解决了

szxizhijiang 发表于 2022-6-5 23:50
num = re.findall('...</a> <a href=".*?">(.*)</a>',num_data)[0]
这样可以取到每一个套图的具体数量,防止 下载不全啊,有的套图数量超过40,你的代码就取不到了
zhcgreat 发表于 2022-6-6 01:00
不清楚楼主是否是必须用request.urlretrieve,如果必须用的话那就别继续看我的回答了,纯浪费时间,如果不是我这几天自学的时候看到一个类似的代码,改了改你看能用不,
import requests, bs4, os

os.makedirs('images', exist_ok=True)

headers = {

    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Firefox/91.0'
}

for i in range(1951,5482):
    url = f'https://www.2meinv.com/article-{i}.html'
    for j in range(1,40):
        url1 = f'https://www.2meinv.com/article-{i}-{j}.html'
        res = requests.get(url=url1, headers=headers)
        soup = bs4.BeautifulSoup(res.text)
        comicElem = soup.findAll('img')
        comicElem = comicElem[0]
        comicUrl = comicElem['src']
        
        res = requests.get(comicUrl)
        res.raise_for_status()
        
        imageFile = open(os.path.join('images', os.path.basename(comicUrl)), 'wb')
        for chunk in res.iter_content(100000):
            imageFile.write(chunk)
        imageFile.close()

嫌慢的话可以看看多线程
原代码来源为《编程快速上手_让繁琐工作自动》
suhaoyue 发表于 2022-6-6 06:27
支持友友,早日修复问题
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2025-1-12 21:48

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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