zoukankan      html  css  js  c++  java
  • 使用request+Beautiful爬取妹子图

    一、request安装

    pip install requests
    

    request使用示例

    import requests
    response = requests.get('https://www.mzitu.com/') # get()方法发送请求,获取HTML网页
    response.status_code  # 返回状态码
    response.text  #以文本格式返回网页内容
    response.content  # 以二进制形式返回
    

    二、BeautifulSoup库

    BeautifulSoup是Python的一个库,最主要的功能就是从网页爬取我们需要的数据。BeautifulSoup将html解析为对象进行处理,全部页面转变为字典或者数组。

    pip install beautifulsoup4
    

    BeautifulSoup基本使用

    三、抓取图片

    from bs4 import BeautifulSoup
    url='http://www.mzitu.com'
    res = requests.get(url)    # get()方法发送请求,获取HTML网页
    soup = BeautifulSoup(res.text, 'html.parser')  # # 使用BeautifulSoup来解析我们获取到的网页 
    
    #coding=utf-8
    import requests
    from bs4 import BeautifulSoup
    def imgurl(url):
        res = requests.get(url)   # url为a标签的helf链接,即为图片封面的图片
        soup = BeautifulSoup(res.text, 'html.parser')   # 使用BeautifulSoup来解析我们获取到的网页
        page = int(soup.select('.pagenavi span')[-2].text)   # 获取总页数,-2为去掉上下页
        # a = soup.select('.main-image a')[0]  # 获取当前图片链接
        # src = a.select('img')[0].get('src')
        src = soup.select('.main-image a img')[0].get('src')  # 获取图片链接
        meiziid = src[-9:-6]  # 切片将src的倒数的字符串做名字
        print('开始下载妹子:', format(meiziid))  # 输出窗口提示下载
        for i in range(1, page+1):
            i = '%02d' % i
            img = src.replace('01.jpg', str(i)+'.jpg')  # replace()替换页数
            #  添加headers模拟浏览器工作 反反爬
            headers = {
                'User-Agent': 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)',
                'Referer': 'http://www.mzitu.com'
            }
            response = requests.get(img, headers=headers)
    
            f = open('/Users/xcn/Desktop/mzitu/'+meiziid+'%s.jpg' % i, 'wb')  # 放在D:666目录下
            f.write(response.content)
            f.close()
            print('===> %s 完成 ' % (meiziid + i))
        print(' %s 已下载
    ' % meiziid)
    
    
    def imgpage(page=''):
        res = requests.get('http://www.mzitu.com/page/' + page)
        soup = BeautifulSoup(res.text, 'html.parser')  # 解析页面
        href = soup.select('#pins a')  # 筛选
    
        list = set([i.get('href') for i in href])  # 遍历获取筛选后的href链接并用set()去掉重复的链接
        [imgurl(i) for i in list]  # 遍历下载
    
    
    result = input('下载哪一页:')
    imgpage(result)
    

    四、大功告成

  • 相关阅读:
    作男人 一定要有品位
    如何管理“人”
    Facebook怎样开发软件:工程师驱动的文化(转)
    为人处事100条——修身养性,经典收藏!
    抽空看看这些电影
    曹重英:技术人员也要打造人脉竞争力(转)
    动态分段统计SQL
    不成熟男人与成熟男人的区别
    Ubuntu11.10国内更新源地址汇总以及添加方法(目前最全最快的源)
    ubuntu11.10 64bits机器安装flash方法
  • 原文地址:https://www.cnblogs.com/baishuchao/p/9282226.html
Copyright © 2011-2022 走看看