鱼C论坛

 找回密码
 立即注册
查看: 6589|回复: 1

[作品展示] 爬取电脑美女壁纸图片

[复制链接]
发表于 2021-5-25 15:27:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
import urllib.request
import os
import re


def url_open(url):
    req = urllib.request.Request(url)
    req.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0')
    
    # proxies = [103.138.164.106:80]
    
    
    response = urllib.request.urlopen(url)
    html = response.read()

    print('url',url)
    return html

def get_page(url):
    html = url_open(url).decode('GBK')
    p = r'<a href="/bz/nxxz/shxz/(\d+)\.html" target="_blank">'
    # 待会用正则
    a = re.findall(p,html)
    # b = a.find('shxz/')
    # c = a.find('.html')

    
    # a = html.find('<li><a href=')
    # b = html.find('target="_blank">',a)
    print('正则提取的尾号',a)
    # return html[a:b]
    return a

def find_imgs(url):
    html = url_open(url).decode('GBK') 
    img_addrs = []
    p = r'img id="bigImg" src="(.+\.jpg)"'
    a = re.findall(p,html)
    for i in a:
        img_addrs.append(i)
    # a = html.find('"bigImg" src') 
    # while a != -1:
    #     b = html.find('jpg',a,100)
    #     if b !=-1:
    #         img_addrs.append(html[a+14:b+3])
    #     else :
    #         b = a + 14
    #     a = html.find('"bigImg" src',b)

    for each in img_addrs:
        print('具体网址',each)
    return img_addrs


def save_imgs(folder,img_addrs):
    for each in img_addrs:
        filename = each.split('/')[-1]
        with open(filename,'wb') as f:
            img = url_open(each)
            f.write(img)


def My_ll(url,i):
    html = url_open(url).decode('GBK')
    q = r'<a href="/bz/nxxz/shxz/%d.html">[\u4e00-\u9fa5]+</a>\((\d+)[\u4e00-\u9fa5]\)'%(int(i))
    fie = re.findall(q,html)
    for ss in fie:
        fie = int(ss)
    print('这组有几张',fie)

    return fie



def download_mm(folder='XXOO',pages=10):
    os.mkdir(folder)
    os.chdir(folder)

    url = 'http://www.jj20.com/bz/nxxz/shxz/'
    x = get_page(url)

    for i in x:
        print('插入URL的尾号',i)
        page_num = i    # 大尾号
        dudu = My_ll(url,i)

        if dudu != []:
            
            for ll in range(1,dudu+1):
                if ll == 1:
                    page_url = url + page_num + '.html'
                    print('page_url0',page_url)
                else :
                    page_url = url + page_num + '_' + str(ll) + '.html'
                    print('page_url1-',page_url)
                img_addrs = find_imgs(page_url)
                save_imgs(folder,img_addrs)
        else:
            print('所有下载已完成!')            

        

if __name__ == '__main__' :
    download_mm()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-10-28 09:30:46 | 显示全部楼层
学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 22:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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