美文网首页Python 运维python爬虫python加油站
Python爬煎蛋网的图片——老司机的第一步

Python爬煎蛋网的图片——老司机的第一步

作者: 舟阳 | 来源:发表于2017-05-17 10:55 被阅读717次

    最近一直在看廖大的教程,但是看着看着,我好无聊啊,于是就去找了一些煎蛋(简单)的爬虫小知识,意外的打开了新世界的大门。啊哈,这下安逸咯~

    煎蛋说下代码

    这个是主程序,可以看到链接以及页码,以及启动函数 star()

    if __name__=='__main__':
        url = 'http://jandan.net/ooxx/page-1#comments'
        pages = 58
        start()
    

    这个是star()函数,我们对链接进行页码的增加,同时通过函数open_url()获取每页的资源,且通过函数get_img()对图片进行本地化保存

    def start():
        for j in range(1,pages+1):
            url2 = url
    
            url2 = url2[:28]+str(j)+url[29:]
    
            print(url2)
    
            get_img(open_url(url2))
    
            print('已经爬去取到第'+str(j) +'页')
    

    这个是open_url()函数

    def open_url(url2):
        #请求
        request = urllib.request.Request(url2)
        #响应
        response = urllib.request.urlopen(request)
    
        data = response.read()
        #转码
        data = data.decode('utf-8')
    
        return data
    

    这个是get_img()函数,里面saveFile()这个函数是对把图标保存到本地。还有这个正则表达式,我不会,我抄的,大意我懂,但是写不出来- - 不过有讲正则的,你们可以搜下简书上的正则表达式文章

    def get_img(html):
    
        # 从网页源代码中筛选出图片的链接
        p = re.compile(r'src="([^"]+\.jpg)"')
    
        imglist = p.findall(html)
    
        for each in set(imglist):
    
            # 拼接链接
            each = 'https:' + each
    
            print(each)
    
            try:
                # 保存到本地
                urllib.request.urlretrieve(each, saveFile(each))
            except:
                print('失败')
    

    最后一个函数saveFile()

    def saveFile(path):
        #检测当前路径的有效性
        if not os.path.isdir(targetPath):
            os.mkdir(targetPath)
    
        #设置每个图片的路径
        pos = path.rindex('/')
        t = os.path.join(targetPath,path[pos+1:])
        return t
    

    当然还有头文件

    import urllib.request,re,os
    
    #本地保存路径 这个写你们自己的路径就行了
    targetPath = "/Users/wangshengquan/Pictures/PythonImage" 
    
    运行图 成果图

    最后是全部代码

    #!/usr/bin/env python3
    # _*_ coding: utf-8 _*_
    
    
    import urllib.request,re,os
    
    #本地保存路径
    targetPath = "/Users/wangshengquan/Pictures/PythonImage"
    
    def saveFile(path):
        #检测当前路径的有效性
        if not os.path.isdir(targetPath):
            os.mkdir(targetPath)
    
        #设置每个图片的路径
        pos = path.rindex('/')
        t = os.path.join(targetPath,path[pos+1:])
        return t
    
    
    def open_url(url2):
        #请求
        request = urllib.request.Request(url2)
        #响应
        response = urllib.request.urlopen(request)
    
        data = response.read()
        #转码
        data = data.decode('utf-8')
    
        return data
    
    def get_img(html):
    
        # 从网页源代码中筛选出图片的链接
        p = re.compile(r'src="([^"]+\.jpg)"')
    
        imglist = p.findall(html)
    
        for each in set(imglist):
    
            # 拼接链接
            each = 'https:' + each
    
            print(each)
    
            try:
                # 保存到本地
                urllib.request.urlretrieve(each, saveFile(each))
            except:
                print('失败')
    
    def start():
        for j in range(1,pages+1):
            url2 = url
    
            url2 = url2[:28]+str(j)+url[29:]
    
            print(url2)
    
            get_img(open_url(url2))
    
            print('已经爬去取到第'+str(j) +'页')
    
    
    if __name__=='__main__':
        url = 'http://jandan.net/ooxx/page-1#comments'
        pages = 58
        start()
    

    Python有着丰富的第三方,确实很方便,而且很简洁,接下来的话,如果可以的话,我希望自己能够继续磨炼自己的技术,向tumblr进攻~

    如果你们看Python实在无聊的话,可以找些有意思的网站,激发自己的学习欲望,嗯嗯,接下来我要努力提示自己,早日掌握代理以及爬隐藏视频连接的技术,早日推到tumblr~

    推荐大神

    LEONYao

    相关文章

      网友评论

        本文标题:Python爬煎蛋网的图片——老司机的第一步

        本文链接:https://www.haomeiwen.com/subject/csxdxxtx.html