| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
import urllib.request 
import os 
 
def url_open(url): 
    req = urllib.request.Request(url) 
    req.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36') 
    response = urllib.request.urlopen(req) 
    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)    #从a开始找 
    print(html[a:b]) 
    return html[a:b] 
 
def find_imgs(url): 
    html = url_open(url).decode('utf-8') 
    img_addrs = [] 
     
    a = html.find('img src=') 
 
    #抓取多张图片 
    while a != -1: 
        b = html.find('.jpg',a,a+255)   #限定范围a+255,不然遇到gif就会一直找下去 
 
        #如果没找到b会返回-1 
        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 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='mm',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 -= 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() 
简单网加了反爬机制了,他把图片的网址隐藏了,我一开始也是怎么都爬不了,然后换了网站就成功了。你可以选择一些比较好怕的,比如这个http://desk.zol.com.cn/fengjing/,今天下午刚成功。作为提升成就感还是不错的   
 
 
 |   
 
 
 
 |