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()