|
发表于 2017-2-27 11:28:37
|
显示全部楼层
添加了一下,还是有问题,请大神指正谢谢- import urllib.request
- import os
- def url_open(url):
- req = urllib.request.Request(url)
- req.add_header("User_Agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36")
- response = urllib.request.urlopen(url)
- html = response.read()
-
- return html
- def get_page(url):
- html = url_open(url).decode("utf-8")
-
- a = html.find("current-comment-page") + 23#偏移23
- b = html.find("]", a)
- return html[a:b]
- def find_imgs(url):
- html = url_open(url).decode("utf-8")
- img_addrs = foo(img_addrs,'http:')
-
- a = html.find("img src=")
- while a != -1:#循环结束,找不到返回-1
- b = html.find(".jpg", a, a+255)
- if b != -1:#找到了
- img_addrs.append(html[a+9:b+4])#偏移? 加入列表
- else:
- b = a + 9
-
- a = html.find("img src=",b)#下一次寻找的起始位置是 b
- return img_addrs
-
- def foo(list,s):
- return [s+str(i) for i in list]
-
- 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_mm(folder = "ooxx",pages = 10): # ->主函数,下载前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 -= i
- page_url = url + "page-" + str(page_num) + "#comments"
- img_addrs = find_imgs(page_url)
- save_imgs(folder,img_addrs)
- if __name__ == "__main__":
- download_mm()
-
复制代码 |
|