• 《零基础入门学习Python》学习过程笔记【56下载一个网站指定页数的XXOO图】


    1如何创建目录?  os.mkdir("目录名")


    2.urllib.request.Request("网页链接")

    urllib.request.Request对象 这种写法更容易为网站视为用户访问


    如何得到Request对象?将string类型的网站强制类型转换,即Request("网站地址")


    3.网站如何检查访问对象是否为用户?检查User-Agent


    4如何查看一个网站的User-Agent?

    右键网页,点击检查,再看Nework 这时在看下方..看是否有正在运行的东西,如果没有那点点网页,让网页发生变化。这时有在运行的东西了,点这个东西,就会出现User-Agent了


    5.stra.find(strb,【开始索引】,【结束索引】)在stra中查找strb,返回索引


    6.图片是二进制代码的形式

    网页代码是utf-8的形式


    7.stra.split(分隔符)   过指定分隔符对字符串进行切片返回分割后的字符串列表


    8.list1[-1]得到列表的最后一个元素


    9.if __name__=='__main__':的作用?

    用if __name__ == '__main__'来判断是否是在直接运行该.py文件



    源代码如下

    import urllib.request
    import os
    
    def url_open(url):
        req=urllib.request.Request(url)#生成一个Request对象,为什么生成这个对象?
        #因为要给它添加一个文件头让它看上去更像用户访问
        req.add_header('User-Agent','Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Mobile Safari/537.36')
        response=urllib.request.urlopen(url)
        html=response.read()  #html的类型是字符串
        return html
    
    def get_page(url):
        html=url_open(url).decode("utf-8")
    
        a=html.find('current-comment-page')+23
        b=html.find(']',a)
    
        return html[a:b]  #返回字符串
        
    
    def find_imgs(url):  #找到链接中的图片
        html=url_open(url).decode('utf-8')
        img_addrs=[] #保存所有图片的地址
    
        a=html.find("img src=") #找不到返回-1
    
        while a!=-1 :
            b=html.find(".jpg",a,a+255) #一个链接最长长不过255
            if b!=-1 :
                img_addrs.append("http:"+html[a+9:b+4])
            else:
                b=a+9
    
            a=html.find('img src=',b)
    
        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 download(folder='ooxx',pages=10):
        os.mkdir(folder)
        os.chdir(folder)#把当前目录切换为该目录
    
        url='http://jandan.net/ooxx'
        page_num=int(get_page(url))
    
        for i in range(pages):
            page_num=page_num-i
            page_url=url+"/page-"+str(page_num)+"#comments"
            img_addrs=find_imgs(page_url) #该列表保存该页码找到的所有图片
            save_imgs(folder,img_addrs)
    
    if __name__=='__main__':
        download()


  • 相关阅读:
    用 Python、 RabbitMQ 和 Nameko 实现微服务
    自定义Docker容器的 hostname
    ubuntu下升级R版本
    pair correlation ggpair ggmatrix
    RabbitMQ消息队列(一): Detailed Introduction 详细介绍
    ng-controller event data
    node项目换了环境node_modules各种报错
    Blast本地化
    angularjs $q、$http 处理多个异步请求
    解决angular页面值闪现问题
  • 原文地址:https://www.cnblogs.com/iamjuruo/p/7470874.html
Copyright © 2020-2023  润新知