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

来源:互联网 发布:沙宣男士洗发水 知乎 编辑:程序博客网 时间:2024/05/16 09:25

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.requestimport osdef 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 htmldef 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()


阅读全文
0 0
原创粉丝点击