吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 2592|回复: 19

[原创源码] 【pyhton】GIF妹子图片下载源代码

[复制链接]
EAST. 发表于 2019-12-26 13:14
软件成品地址:https://www.52pojie.cn/thread-1079958-1-1.html
发出来的成品贴还不错,把源代码给大家分享出来了
正在学习py的可以改一改,随你怎么搞吧
{162173CA-41D6-48C5-9C95-116196386E99}.png
写的代码质量有点差,还请各位大佬多多指教
[Python] 纯文本查看 复制代码
import urllib.request
import os,parsel,re
from bs4 import BeautifulSoup

def save_dir():#保存目录
    folder=str(input("[默认为当前目录下的GIF]请输入要保存的文件夹名字:"))
    if(folder==''):
        folder='GIF'
    if(os.path.exists(folder)):
        pass
    else:
        os.mkdir(folder)
    os.chdir(folder)
    #print('您的保存目录是:',os.getcwd())

def open_url(url):#打开网页
    req = urllib.request.Request(url)
    req.add_header('User-Agent','Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36')
    response = urllib.request.urlopen(url)
    html = response.read()
    return html

def get_page(url):#查找页码
    url=url+"forum-38-1.html"
    html=open_url(url)
    soup=BeautifulSoup(html,'lxml').find('div',class_='pg')
    page=soup.find_all('a')[-2].get_text()
    return page

def find_url(url,link):#查找图片页链接
    html=open_url(link)
    hr=parsel.Selector(html.decode('GBK'))
    th=hr.xpath("//h3/a/@href").extract()
    #banner=hr.xpath("//h3/a/@title").extract()
    urlnum=[]
    for k in th:
        urlnum.append(url+k)
    return urlnum
             
def open_page(j):#打开页面并查找图片地址
    html=open_url(j)
    div=parsel.Selector(html.decode('GBK'))
    img=div.xpath("//div[@align='center']/img/@src").extract()
    return img

def save_img(picurl):#保存图片
    for each in picurl:
        filename = each.split('/')[-1]
        if(os.path.exists(filename)):
            pass
        else:
            with open(filename,'wb')as file:
                picture=open_url(each)
                file.write(picture)
    #print('正在保存',filename)


def main():
    url="http://www.gifcc.com/"
    save_dir()
    page=int(get_page(url))+1
    print("正在保存文件中,请到",os.getcwd(),'目录下查看')
    print("停止保存请按“ctrl+c”或者直接关闭窗口")
    for i in range(1,page):
        ++i
        link=url+'forum-38-'+str(i)+'.html'
        img_url=find_url(url,link)
        for j in img_url:
            picurl=open_page(j)
            save_img(picurl)
        

if __name__ == "__main__":
    main()


源代码GitHub地址:https://github.com/lovebai/Python/tree/master/gif
成品可以去上面的链接里下载

免费评分

参与人数 5吾爱币 +5 热心值 +5 收起 理由
zhaowo + 1 + 1 我很赞同!
苏紫方璇 + 3 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
不败的意志 + 1 我很赞同!
indian806 + 1 谢谢@Thanks!
传唱信仰 + 1 + 1 我很赞同!

查看全部评分

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

Tairraos 发表于 2019-12-27 14:24
EAST. 发表于 2019-12-26 13:54
post请求?F12分析一波,具体的我也没搞过京东的,有时间看看

各大电商平台早就在反爬虫的路上走好远了。图片URL都是没有含义的简单hash值,价格都是服务器端生成图片打印到前台。为了防止用OCR程序识别图片, 还会在价格上显示杂乱的干扰象素。
 楼主| EAST. 发表于 2019-12-26 13:47
indian806 发表于 2019-12-26 13:41
有没有一个想法,就是不单单是爬取某个网址,而是通过python识别很多网址的解析方式,达到多网站通用的代码 ...

按理来说应该是可以,如果是同一种网站程序通杀应该更简单点
传唱信仰 发表于 2019-12-26 13:29
支持一波,我喜欢走捷径,直接用的reuests,urilib没用过
 楼主| EAST. 发表于 2019-12-26 13:31
传唱信仰 发表于 2019-12-26 13:29
支持一波,我喜欢走捷径,直接用的reuests,urilib没用过

新浪的图用requests 返回200不返回图片数据所以换成了urllib
indian806 发表于 2019-12-26 13:38
大神就是大神,好好学习一波,希望自己早日也能写出点东西
maifuzi 发表于 2019-12-26 13:40
能写个视频的不?我你个地址,看看怎么搞
indian806 发表于 2019-12-26 13:41
有没有一个想法,就是不单单是爬取某个网址,而是通过python识别很多网址的解析方式,达到多网站通用的代码,而不是一个网址写一个。
花花的爷爷 发表于 2019-12-26 13:44
请问对于京东的那种折扣的,看源码根本没有这种信息,怎么爬呢?
 楼主| EAST. 发表于 2019-12-26 13:47
maifuzi 发表于 2019-12-26 13:40
能写个视频的不?我你个地址,看看怎么搞

可以试试看
maifuzi 发表于 2019-12-26 13:50

我私信你了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

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

GMT+8, 2020-6-5 17:43

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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