爬取妹子图片

学习练习爬虫的时候写了一个爬取妹子的小程序玩玩。

from bs4 import BeautifulSoup
import requests
import os
from threading import Thread

‘‘‘
    soup.find( name , attrs , recursive , string , **kwargs )函数
        name:查找哪一个标签
        attrs:标签里的指定那个参数,比如class
    注意:
        BeautifulSoup()返回的类型是<class ‘bs4.BeautifulSoup‘>
        find()返回的类型是<class ‘bs4.element.Tag‘>
        find_all()返回的类型是<class ‘bs4.element.ResultSet‘>
        <class ‘bs4.element.ResultSet‘>不能再进行find/find_all操作
‘‘‘
def first_page(url):
    ‘‘‘
        从主页的图片链接进去匹配
        http://www.mzitu.com/155036
        http://www.mzitu.com/155036/2
        找到最大页数,循环访问
    ‘‘‘
    headers = {
            ‘UserAgent‘: ‘Mozilla/5.0 (Windows NT 6.1 rv: 2.0.1) Gecko/20100101 Firefox/4.0.1‘,
    }
    html = requests.get(url,headers=headers)
    soup = BeautifulSoup(html.text,‘html.parser‘)
    girl_url_list = soup.find(‘div‘,class_=‘main-image‘).find_all(‘a‘)[‘href‘]
    #最大页数
    pic_max = soup.find_all(‘span‘)[10].text
    #图片标题,soup对象
    title = soup.find(‘h2‘,class_=‘main-title‘).text
    pic_urls = []
    for i in range(1,int(pic_max)+1):
        pic_url = url +‘/‘+ str(i)
        pic_urls.append(pic_url)
    return pic_urls,title

def get_link(url):
    ‘‘‘
        从上层的http://www.mzitu.com/155036/2链接中匹配到图片链接
        http://i.meizitu.net/2018/10/18b01.jpg
    ‘‘‘
    headers = {
            ‘UserAgent‘: ‘Mozilla/5.0 (Windows NT 6.1 rv: 2.0.1) Gecko/20100101 Firefox/4.0.1‘,
    }
    link_dict = {}
    res = first_page(url)
    print(res)
    for pic_url in res[0]:
        html = requests.get(pic_url, headers=headers)
        mess = BeautifulSoup(html.text,‘html.parser‘)
        link = mess.find(‘img‘, alt=res[-1])[‘src‘]  # link为<class ‘bs4.element.Tag‘>对象
        pic_name =  link.split(‘/‘)[-1]
        link_dict[link] = pic_name
    return link_dict

def download(url):
    ‘‘‘
        从图片地址下载图片
    ‘‘‘
    link_dict = get_link(url)
    for link in link_dict:
        headers = {
            ‘UserAgent‘: ‘Mozilla/5.0 (Windows NT 6.1 rv: 2.0.1) Gecko/20100101 Firefox/4.0.1‘,
            ‘Referer‘:link #由于网站有防盗链,所以要告诉服务器我是从哪个页面链接过来的
        }
        html = requests.get(link,headers=headers)
        os.chdir(‘C:/Users/asus/Desktop/code/9.爬虫/简单web爬虫/picture‘) #选择保存文件夹
        with open(link_dict[link],‘wb‘) as fp:
            fp.write(html.content)

if __name__ == ‘__main__‘:  #这里的图片主页链接由于没爬取,先手动添加,有点low。。。
    urls = [‘http://www.mzitu.com/47580‘,‘http://www.mzitu.com/108003‘,‘http://www.mzitu.com/48342‘]

  for url in urls:
        t = Thread(target=download,args=(url,)) #开启线程爬取
        t_list.append(t)
  for t in t_list:
        t.start()
  for t in t_list:
        t.join()

原文地址:https://www.cnblogs.com/kmnskd/p/9928319.html

时间: 2024-11-05 16:06:44

爬取妹子图片的相关文章

Python爬虫之——爬取妹子图片

首先声明,本博文为我原创,但是我在看了 崔庆才 博主的文章之后加以自己的实际处理的所得,感谢 崔庆才 博主,写的爬虫文章都好,博主文章地址:http://cuiqingcai.com/3179.html 环境:python 3.6 注:单线程版以在安卓的Qpython(py2.7)上运行成功 第三方库 requests:解析url beautifulsoup4:不会正则表达式童鞋的福音,可以容易的提取到html文件中各种标签及其属性 安装方法: pip install requests pip

Scrapy爬取美女图片 (原创)

有半个月没有更新了,最近确实有点忙.先是华为的比赛,接着实验室又有项目,然后又学习了一些新的知识,所以没有更新文章.为了表达我的歉意,我给大家来一波福利... 今天咱们说的是爬虫框架.之前我使用python爬取慕课网的视频,是根据爬虫的机制,自己手工定制的,感觉没有那么高大上,所以我最近玩了玩 python中强大的爬虫框架Scrapy. Scrapy是一个用 Python 写的 Crawler Framework ,简单轻巧,并且非常方便.Scrapy 使用 Twisted 这个异步网络库来处理

一个咸鱼的Python爬虫之路(三):爬取网页图片

学完Requests库与Beautifulsoup库我们今天来实战一波,爬取网页图片.依照现在所学只能爬取图片在html页面的而不能爬取由JavaScript生成的图.所以我找了这个网站http://www.ivsky.com 网站里面有很多的图集,我们就找你的名字这个图集来爬取 http://www.ivsky.com/bizhi/yourname_v39947/ 来看看这个页面的源代码: 可以看到我们想抓取的图片信息在<li> 里面然后图片地址在img里面那么我们这里可以用Beautifu

Scrapy爬取美女图片续集 (原创)

上一篇咱们讲解了Scrapy的工作机制和如何使用Scrapy爬取美女图片,而今天接着讲解Scrapy爬取美女图片,不过采取了不同的方式和代码实现,对Scrapy的功能进行更深入的运用. 在学习Scrapy官方文档的过程中,发现Scrapy自身实现了图片和文件的下载功能,不需要咱们之前自己实现图片的下载(不过原理都一样). 在官方文档中,我们可以看到下面一些话:Scrapy为下载item中包含的文件(比如在爬取到产品时,同时也想保存对应的图片)提供了一个可重用的 item pipelines .

一个简单的网络爬虫-从网上爬取美女图片

CrawlerPicture.java 文件 package com.lym.crawlerDemo; import java.io.DataInputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.util.ArrayList; import

python爬虫爬取美女图片

python 爬虫爬取美女图片 #coding=utf-8 import urllib import re import os import time import threading def getHtml(url): page = urllib.urlopen(url) html = page.read() return html def getImgUrl(html,src): srcre = re.compile(src) srclist = re.findall(srcre,html)

Scrapy爬取美女图片第三集 代理ip(上) (原创)

首先说一声,让大家久等了.本来打算520那天进行更新的,可是一细想,也只有我这样的单身狗还在做科研,大家可能没心思看更新的文章,所以就拖到了今天.不过忙了521,522这一天半,我把数据库也添加进来了,修复了一些bug(现在肯定有人会说果然是单身狗). 好了,废话不多说,咱们进入今天的主题.上两篇 Scrapy爬取美女图片 的文章,咱们讲解了scrapy的用法.可是就在最近,有热心的朋友对我说之前的程序无法爬取到图片,我猜应该是煎蛋网加入了反爬虫机制.所以今天讲解的就是突破反爬虫机制的上篇 代理

百度图片爬虫-python版-如何爬取百度图片?

上一篇我写了如何爬取百度网盘的爬虫,在这里还是重温一下,把链接附上: http://5912119.blog.51cto.com/5902119/1771391 这一篇我想写写如何爬取百度图片的爬虫,这个爬虫也是:搜搜gif(在线制作功能点我) 的爬虫代码,其实爬虫整体框架还是差不多的,但就是会涉及到图片的的一些处理,还是花费了我不少时间的,所以我请阅读的本爬虫的孩子还是认真一些,毕竟程序猿都不容易啊.好的,我也不想多说,爬虫的代码我会分享到去转盘网,想下载本爬虫代码的孩子请点我下载,如果没有下

练习-爬取某图片及查询IP地址

爬取某图片的程序: #图片爬取全代码 import requests import os url='http://img0.dili360.com/rw9/ga/M01/4A/3D/wKgBy1p6qJ6ALyaOADWDaIwa9uw587.tub.jpg' root='D:/北理工爬虫课程/' path=root+url.split('/')[-1]#被加数表示的是图片路径中图片的名字加后缀 try: if not os.path.exists(root): os.mkdir(root)#如