您的位置:首页 > 编程语言 > Python开发

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

2017-08-09 05:51 477 查看
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()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐