zoukankan      html  css  js  c++  java
  • Python爬虫-爬取科比职业生涯高清图集

      前面学习了Python爬取豆瓣电影Top250的数据,爬取的信息是电影信息的文本信息,但是在互联网上流行的图片才有更大的吸引力,本篇我们来使用python爬取网页上的图片并保存在本地硬盘上,很兴奋吧,Let's Go!

    使用Python版本:3.7 

    第三方库

    requests: 解析url (强大,你不得不用!)
    beautifulsoup4:不会正则表达式童鞋的福音,可以容易的提取到html文件中各种标签及其属性

    安装方法: 
    pip install requests 
    pip install beautifulsoup4

    爬取目标网页科比职业生涯高清图集 (来自百度网友分享)

    https://baijiahao.baidu.com/s?id=1566820986637813&wfr=spider&for=pc

     分析网页源代码:发现需要的内容都集中在class="article-content"的div标签中,而且需要的图片都集中在class="large"的img标签中

    啥也不说了,直接上Python代码吧!

    KobeForever.py
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    # coding = utf-8

    # 导入库
    import os
    import requests
    from bs4 import BeautifulSoup

    # 要爬取的科比职业生涯高清图集URL
    url = 'https://baijiahao.baidu.com/s?id=1566820986637813&wfr=spider&for=pc'

    # 设置headers,网站会根据这个判断你的浏览器及操作系统,很多网站没有此信息可能将拒绝你访问
    header = {
            
    'User-Agent''Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 UBrowser/6.1.2107.204 Safari/537.36'}

    # 用get方法打开url并发送headers
    html = requests.get(url, headers = header)

    # 使用自带的html.parser解析,速度慢但通用
    soup = BeautifulSoup(html.text, 'html.parser')

    # 打印结果 .text是打印出文本信息即源码
    # print(html.text)

    # 所有的图片内容都包含在class=article-content的大div中
    all_div = soup.find('div', class_ = 'article-content').find_all('div', class_ = 'img-container')

    # 但是,实际上我们仅仅需要class=large的img标签集合即可
    all_img = soup.find_all('img', class_ = 'large')
    for img in all_img:
        src = img[
    'src']
        img_url = src
        
    # 打印出图片的地址
        print(img_url)
        
    # 实际上,我们更希望保存在我们的电脑硬盘上
        root = 'C:/KobeForever/'
        path = root + img_url.
    split('/')[-1]
        
    try:  # 创建或判断路径图片是否存在并下载
            if not os.path.exists(root):
                os.mkdir(root)
            
    if not os.path.exists(path):
                r = requests.
    get(img_url)
                
    with open(path, 'wb'as f:
                    f.
    write(r.content)
                    f.
    close()
                    
    print("文件保存成功")
            
    else:
                
    print("文件已存在")
        
    except:
            
    print("爬取失败")

    运行起来吧,GO!

    最后再来一张霸气的!

  • 相关阅读:
    常用工具-notepad++打开大文件卡死现象
    ORM框架之EntityFramework
    System.Data.Entity 无法引用的问题
    js 数组、对象转json 以及json转 数组、对象
    js中(function(){xxx})();写法解析以及function与!感叹号
    js 里面call()的使用
    Javascript继承机制的设计思想
    JS中let和var的区别
    利用JS实现图片的缓存
    实例详述FOR XML PATH用法
  • 原文地址:https://www.cnblogs.com/MakeView660/p/9645068.html
Copyright © 2011-2022 走看看