博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
美女图片爬虫实例 全代码 爬虫
阅读量:2129 次
发布时间:2019-04-30

本文共 2623 字,大约阅读时间需要 8 分钟。

好久没有发表东西了 发表一篇之前的吧 图片的爬取储存 上代码

'''案例:空姐网相册爬虫(bs4)http://www.kongjie.com/home.php?mod=space&do=album&view=all&page=1爬取相册照片,用uid + picid +'.jpg'命名,保存到images目录下'''import requestsfrom bs4 import BeautifulSoupimport timeimport randomimport redef get_ua():    '''    定义请求头    '''    headers={        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36',    }    return headersdef parse_album_list(url):    '''    提取相册列表    '''    response = requests.get(url,headers=get_ua())    html = response.text    soup = BeautifulSoup(html,'lxml')    #提取相册列表    ls = soup.select('ul.ml.mla.cl > li > div > a')    print('len:',len(ls))    for each in ls:        album_url = each['href']        #album_url = each.attrs['href']        #album_url = each.get('href')        parse_photo_list(album_url)    # 翻页功能    next_page = soup.select('a.nxt')    if len(next_page)>0:        next_page_url = next_page[0]['href']        parse_album_list(next_page_url)def parse_photo_list(url):    '''    提取指定相册的照片列表    '''    print('album url:',url)    response = requests.get(url,headers=get_ua())    html = response.text    soup = BeautifulSoup(html,'lxml')    # 提取照片列表    ls = soup.select('ul.ptw.ml.mlp.cl > li > a')    print('photo list len:',len(ls))    if len(ls)>0:        for each in ls:            photo_url = each['href']            parse_photo_detail(photo_url)            time.sleep(random.random()*2)    # 翻页处理    next_page = soup.select('a.nxt')    if len(next_page)>0:        next_page_url = next_page[0]['href']        print('next page url:',next_page_url)        parse_photo_list(next_page_url)def parse_photo_detail(photo_url):    '''    提取照片的详情信息    '''    # 从URL中提取uid和picid    # http://www.kongjie.com/home.php?mod=space&uid=48196&do=album&picid=864985    pat = re.compile(r'uid=(\d+).*?picid=(\d+)')    match_obj = pat.search(photo_url)    if match_obj != None:        uid = match_obj.group(1)        picid = match_obj.group(2)    print('uid:',uid)    print('picid:',picid)    # 提取照片的链接    response = requests.get(photo_url,headers=get_ua())    html = response.text    soup = BeautifulSoup(html,'lxml')    img_url = soup.select_one('img#pic')['src']    save_img(img_url,uid,picid)def save_img(url,uid,picid):    '''    下载照片    '''    print('pic_url:',url)    response = requests.get(url,headers=get_ua())    img_path = './images/'+uid + "_" +picid +'.jpg'    with open(img_path,'wb') as file:        file.write(response.content)if __name__ == "__main__":    url = "http://www.kongjie.com/home.php?mod=space&do=album&view=all&page=1"    parse_album_list(url)

转载地址:http://jhlrf.baihongyu.com/

你可能感兴趣的文章
分析C语言的声明
查看>>
TCP为什么是三次握手,为什么不是两次或者四次 && TCP四次挥手
查看>>
C结构体、C++结构体、C++类的区别
查看>>
进程和线程的概念、区别和联系
查看>>
CMake 入门实战
查看>>
绑定CPU逻辑核心的利器——taskset
查看>>
Linux下perf性能测试火焰图只显示函数地址不显示函数名的问题
查看>>
c结构体、c++结构体和c++类的区别以及错误纠正
查看>>
Linux下查看根目录各文件内存占用情况
查看>>
A星算法详解(个人认为最详细,最通俗易懂的一个版本)
查看>>
利用栈实现DFS
查看>>
逆序对的数量(递归+归并思想)
查看>>
数的范围(二分查找上下界)
查看>>
算法导论阅读顺序
查看>>
Windows程序设计:直线绘制
查看>>
linux之CentOS下文件解压方式
查看>>
Django字段的创建并连接MYSQL
查看>>
div标签布局的使用
查看>>
HTML中表格的使用
查看>>
(模板 重要)Tarjan算法解决LCA问题(PAT 1151 LCA in a Binary Tree)
查看>>