python学习之 爬取煎蛋网美女图

用到库 os ,requests, base64
os简单介绍:点这里
requests介绍:点这里
base64介绍:点这里

其中 requests和 base64属于第三方库,需要自己安装
pip 一下就好

重点看一下requests 库的介绍,看上面那篇文章我觉得够了
其中,带参数的url请求,就是相当于打开该网页的一个子网页

然后就是煎蛋网网址:http://jandan.net/ooxx
右键,检查,点到页码看到
在这里插入图片描述
点到图片
在这里插入图片描述
ok,到时候查找地址的时候就用到这几个,简易的通过字符串查找,不过用正则也行(还不会)
还有注意到
在这里插入图片描述
网页的url中表示页数的数字是通过base64的方式进行编码的,所以我们需要在代码中进行转换

上代码 各模块封装

import requests as rs
import os
import base64

def url_open(url):
    headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36'}
    respones=rs.get(url,headers=headers)
    return respones.content

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 get_url(page_num):
    targt_num = '20200101-' + str(page_num)
    targt_num = base64.b64encode(targt_num.encode('utf-8'))
    page_url = 'http://jiandan.net/ooxx/' + str(targt_num,'utf-8')+'#comments'#网页链接
    return page_url

def save_image(folder,image_adress):
    for each in image_adress:
        filename = each.split('/')[-1]
        with open(filename,'wb') as f:# 获取的文本实际上是图片的二进制文本
            each = 'http:' + each
            img = url_open(each)
            f.write(img)
            
def find_images_address(page_url):
    html = url_open(page_url).decode('utf-8')
    img_addrs = []
    a = html.find('img src=')
    while a != -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)
    return img_addrs

def downloads(folder="学习资料"):
    os.mkdir(folder)
    os.chdir(folder)
    
    url='http://jiandan.net/ooxx'

    page_num=int(get_page(url))

    for i in range(page_num):
        page_url=get_url(page_num)
        images_address=find_images_address(page_url)#找到图片的地址
        save_image(folder, images_address )#存到指定的文件
        page_num -= 1
if __name__=='__main__':
    downloads() 

猜你喜欢

转载自blog.csdn.net/m0_52521883/article/details/113840690
今日推荐