精华内容
下载资源
问答
  • 与小卡特一起学python

    2018-02-19 14:18:29
    与小卡特一起学python,资源下载!与小卡特一起学python,资源下载!与小卡特一起学python,资源下载
  • 和秋叶一起学Excel

    2019-03-05 14:04:47
    和秋叶一起学Excel
  • 一起学libcef--开篇(下载、CMake的使用)

    万次阅读 多人点赞 2015-12-03 22:08:17
    从这个网站下载你要的版本,我下载的是windows 32位。 下载并解压,得到了如下文件夹: 3.如何从下载文件中得到想要的解决方案 这个时候你就会迷茫了,网上很多说在文件夹中找到对应vs版本的解决方案...

    微信、qq等很多windows客户端都用到了libcef.dll,从现在开始准备学习学习。

    1.什么是libcef
    Chromium嵌入式框架对于嵌入chromium浏览器的其他应用程序来说是一个简单的框架。。其遵循建立于2008年Marshall Greenblatt 的BSD许可协议。基于Google Chromium工程。不像Chromium工程本身,主要集中开发Google Chrome应用程序,CEF聚焦于使用第三方嵌入浏览器的应用程序, 通过提供稳定的API,CEF将chromium底层以及复杂的Blink代码隔离开来,分支发布紧跟chromium发布,以及二进制发布。大多数CEF的特性都有默认的实现,其功能了丰富的功能,较少甚至没有集成工作需要去做。目前全球有超过1亿CEF运行实例,其嵌入在广泛公司和企业的嵌入式产品中。

    2.如何下载libcef
    https://cefbuilds.com/
    从这个网站下载你要的版本,我下载的是windows 32位。
    这里写图片描述

    下载并解压,得到了如下文件夹:
    这里写图片描述

    3.如何从下载文件中得到想要的解决方案
    这个时候你就会迷茫了,网上很多说在文件夹中找到对应vs版本的解决方案。但是如上图所示,干嘛没有.sln文件。

    这个时候就需要阅读以下文档了:
    https://bitbucket.org/chromiumembedded/cef/wiki/Tutorial

    看到下面一段话:
    Using CMake
    Starting with 2171 branch the CEF3 sample applications can be built using CMake, a cross-platform open-source build system that can generate project files in many different formats. See the comments at the top of the CMakeLists.txt file included with the binary distribution for platform-specific CMake usage instructions.

    这个时候,需要下载CMake了,这是什么鬼?
    CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。
    下载地址:
    https://cmake.org/

    下载后安装,没有什么特别的地方。

    接下来就是使用cmake了:
    这里写图片描述
    Browse Source选择刚刚解压的libcef文件夹,最外面的奥!!
    Browse Build选择要把生成的工程放在哪里。
    点击Generate,然后选择现在使用的VS版本,就可完成。
    这里写图片描述

    接下来就可以打开cef.sln了,然后可以运行里面的例子。

    下一篇,我们要将如何在自己的工程中配置libcef的使用环境!!

    展开全文
  • 和秋叶一起学word 高清版
  • 和秋叶一起学Excel.pdf

    2019-07-11 08:35:46
    《和秋叶一起学Excel》,是由秋叶团队原创开发的,主要解决读者学习Excel从入门到进阶的系统课程,全书以图文+配套习题的形式展示。适合整天与表格打交道的朋友下载学习。
  • 一起学爬虫(Python) — 02

    千次阅读 多人点赞 2020-11-26 19:33:10
    今天要学会爬requests模块什么是requests模块如何安装requests模块怎么用requests模块实战...如果过python基础的话就会知道模块是个什么东西,没有过直接来这里看的呢,也应该大致知道模块是个什么东东,就是类似于

    一起学爬虫(Python) — 19 年轻人,进来学自动化

    requests模块

    什么是requests模块

    大家好鸭,今天是写博客的第二天,昨天写的结果只有不几个人看了呢,不过还有两个小伙伴点赞了,真的是万分感谢!!!
    在这里插入图片描述

    希望各位看客能多多提意见还有提问题哦,小泽都会努力解答的~
    咳咳,开始今天的正题:requests模块。
    如果学过python基础的话就会知道模块是个什么东西,没有学过直接来这里看的呢,也应该大致知道模块是个什么东东,就是类似于数学公式的存在,不需要繁琐的计算,直接套用公式的那种感觉。
    那么,什么是requests模块呢?
    python自带的一款基于网络请求的模块,功能强大,效率极高!
    一个字,牛逼!!
    总之你不会写不理解的东东,这个模块统统都给你解决喽,你只需要一句话,一个词就可以直接调用一大堆神奇的指令~

    如何安装requests模块

    环境安装:

        pip install requests
    

    在这里插入图片描述

    在这里插入图片描述
    我的系统是win7的,不过推荐各位用win10系统,在下是因为贫穷…咳咳,还有如果用的是pycharm的话,安装模块要在……
    在这里插入图片描述
    在这里插入图片描述
    找到上图所示的目录Project–>Project interpreter,然后点击右上角的加号。
    在这里插入图片描述
    搜索requests,然后点击左下角的install Package进行下载,成功了下面会提示你绿了(有个绿条条)
    这里我已经下载过了,所以各位自行下载吧~

    怎么用requests模块

    如果上面的步骤都准备好了,那么恭喜你,可以开始爬了!
    当然可能会有些小伙伴会报错呀报错呀报错呀之类的,没事,把问题留言一下,小泽看到了会及时回复的~
    那么,光看不做可不行,知道了理论知识,也要会实践,对吧。
    在那之前先了解一下requests模块干事的四个步骤,然后敲代码的时候要想着这四个步骤,一步一步来,稳住,不要浪!
    1.指定url(发现敌军位置)
    2.发起请求(请求使用意大利炮)
    3.获取响应数据(开炮!)
    4.持久化存储(收拾战场)

    后面的比喻可能不那么精准哈…不过大概意思就是这样,要知道,requests模块是模拟我们去上网,所以要从我们自己的角度去给requests模块施加命令,不能一步登天哈。

    实战!

    首先啊,不管干什么,要先记住一件事,导入模块!

    #导入requests模块
    import requests
    

    1.指定url
    那我们随便找一个网站去试一试,随便找啊,比如说百度吧。
    www.baidu.com

    #1:指定url
    url='https://www.baidu.com/'
    

    各位会不会觉得百度很厉害,一定爬不下来?
    给我爬!
    在这里插入图片描述

    #2:发起请求(get方法会返回一个响应对象)
    response = requests.get(url=url)
    

    这一步大家应该都看得懂吧,requests.get()是一个方法,里面要指定url,爬也得爬对地方对吧。response则是接受了requests.get()方法爬取回来的数据,就是响应对象,很专业的名词啊,但是没关系,知道就好了。

    #3:获取响应数据
    page_text = response.text
    

    到了第三步喽,这个时候已经爬回东西来了,进去了又出来,那还进不进去都无所谓了,毕竟东西已经爬到了,接下来就是把这个东西转换成我们能看得懂的数据,当然你也可以自己把response打印一下,看一看对吧,要多动手实践才能知道为什么要这么做的,不要光我说什么就是什么了。
    .text就是把response转换成了文本格式,然后又把数据给了page_text,这里为什么要用page_text呢,因为高级啊!别人看不懂就会显得很高级~

    #4:持久化存储
    with open('./baidu.html','w',encoding='utf-8') as fp:
     fp.write(page_text)
    print('爬完了')
    

    最后一步,把我们爬取到的东西保存下来,这个大家应该都能理解,突然觉得很简单吧,这就是爬虫!
    但是程序员会让你这么简单的爬下来吗那些重要数据吗?答案肯定是No!所以为了爬取美女图片,我们要更加努力学习!
    明天,我们就来使自己更强大!
    至少得爬取到我们想要的东西,对吧。
    那今天就到这里啦,各位看官早点睡吧,晚安~
    在这里插入图片描述

    展开全文
  • 一起学爬虫(Python) — 10

    千次阅读 多人点赞 2020-12-07 21:01:42
    高效爬取美丽的图片任务目标任务流程step1:复制step2:粘贴...正好我们在 一起学爬虫(Python) — 08 中讲到了异步,众所周知,异步是提高效率的一种方式,那么我们是不是也可以用异步来实现唰唰唰地下载美女 美丽的

    一起学爬虫(Python) — 19 年轻人,进来学自动化

    任务目标

    在 一起学爬虫(Python) — 05 中呢,我们爬取了很多很多的美女 美丽的图片,但是不晓得大家有没有觉得太慢了,这样让很快的我们很是接受不了。

    正好我们在 一起学爬虫(Python) — 08 中讲到了异步,众所周知,异步是提高效率的一种方式,那么我们是不是也可以用异步来实现唰唰唰地下载美女 美丽的图片呢?

    这就是我们今天的任务目标!如果你有思路了,就把你的思路在评论里跟大家分享一下吧,学习还是要多交流的嘛~

    (`・ω・´)

    任务流程

    step1:复制

    没错,这里我们又用到了step这个英语单词,为什么呢?

    一切尽在不言中…

    话不多说,直接开始冲!

    找到我们之前在 一起学爬虫(Python) — 05 中编写的代码,直接复制到一个新的py文件里!

    当然如果你是那种邻居家的孩子的话,也可以选择自己找一个网站尝试着把图片爬取下来。

    这里小泽给大家直接设置几个传送门,方便去看美女 美丽的图片:

    传送门①号

    传送门②号

    两个就好了,多了怕大家身体承受不住哈。

    当然如果你属于那种比较难以满足的,不要害羞哦,偷偷地告诉小泽,会悄悄地给你一些好康的,绝对不会暴露你的特殊爱好的,我保证!

    (`・ω・´)

    step2:粘贴

    简简单单两个字,却包含了可大可小,可长可短的很多很多信息,秒啊!

    当然如果你懒得翻到 一起学爬虫(Python) — 05 中去寻找美女 美丽的图片的代码呢,也可以直接在下面进行复制然后粘贴哈。

    这就是爱吗,小泽好暖!

    import requests
    from lxml import etree
    import os
    # 指定第一个url
    url = 'http://www.win4000.com/zt/dongman.html'
    # 指定伪装头
    headers = {
        'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'
    }
    # 读取第一个url
    response = requests.get(url=url,headers=headers).text
    # 树化第一个页面
    tree = etree.HTML(response)
    # 找到图片对应的第二个页面(li列表)
    leaf = tree.xpath('//div[@class="tab_tj"]//ul[@class="clearfix"]/li/a/@href')
    
    # 创建一个文件夹
    if not os.path.exists('./setu'): # 如果该文件夹不存在,则创建
        os.mkdir('./setu')
    
    
    # 遍历每一张图片所对应的第二个页面
    for a in leaf:
        # 防止出错中止程序
        try:
            # 设置局部变量,177105_b
            b = 1
            # 循环获取图集里的每一张图片,默认最多10张
            while b < 11:
                # 切割-->拼接
                c = a.split('.html')[0]
                d = c+'_'+str(b)+'.html'
                # 当前图集的下一张
                b += 1
                # 对第二个页面开始读取,前面的都是为了方便找url
                e = requests.get(url=d,headers=headers).text
                # 树化第二个页面
                f = etree.HTML(e)
                # 在第二个页面里找到我们要的图片地址 [0]是指把列表里第一个元素提取出来,可以这么拼接!!
                g = f.xpath('//div[@class="main"]//div[@class="pic-meinv"]/a/img/@src')[0]
                # 获取图片的二进制数据
                h = requests.get(url=g,headers=headers).content
                # 给图片起名
                i = 'setu/'+g.split('/')[-1]
                # 持久化存储
                with open(i,'wb') as fp:
                    fp.write(h)
    
        except:
            print('出错啦')
    

    不过确实写的有点粗糙哈,如果有能力的小伙伴可以把代码优化一下,然后偷偷发给小泽,偷偷的哦…

    (`・ω・´)

    step3:重学异步

    这里有的同学就问了,老师我们之前明明学过异步,为什么还要重学异步呢?难道是老师忘了吗忘了吗忘了吗…

    当然不是啦,说是重学是有原因的,原因就是之前的异步有很多小伙伴压根就没有看懂的嘛,不是说什么笨不笨,聪明不聪明,而是小泽讲的不是很认真吧,所以也就耽误了很多渴望学习的小伙伴,于是乎,今天就来教大家学异步啦!

    当然,异步不是那么容易学的,我们现在只能努力入门,然后慢慢积累经验,才能应用得当,这就需要大家一起努力啦!

    什么是异步

    这里有的同学就又要问了,老师老师老师,这里之前讲过诶,为什么还要再讲一遍呢?

    因为今天我们要用美女 美丽的图片的例子来说明,什么是异步,通过实践来理解异步的作用!

    (`・ω・´)

    勤奋的小明

    好的,让我们把目光重新放到还在一心三用的小明身上…

    在这里插入图片描述

    如果你忘了,没关系,这里也不会讲,自己去 一起学爬虫(Python) — 08 里面复习一下子哈。

    (`・ω・´)

    先不管其他代码,我们看看以下的代码:

    在这里插入图片描述

    理解小明

    大家试着这样理解,小明sleep的那两秒或者四秒,是他仅有的休息时间,然后异步的作用就是在他休息的时间让他去干别的事,这样就可以理解了吧!!!

    理解美女 美丽的图片

    那么我们从网上爬取图片的时候,步骤又是怎么样的呢?

    1.向图片网址发送请求,就是模拟我们打开图片网址
    2.接收服务器发给我们的所有信息,对,是它自愿给我们的!
    3.从很乱的数据里面找到我们要的图片对应的网址,每个图片都有一个对应的下载网址
    4.然后进行下载,注意,下载的话是要根据每个人的网速决定快慢的
    5.保存到本地
    

    但是但是但是,我们这样做的前提是我们只有一台电脑,不像网吧老板,可以同时下50部高清电影,还不带卡的。

    那么我们仔细想一想,电脑在等待图片下载完成的这个过程中,它做了什么吗?

    没有!

    它什么都没做。

    也许一张图片很快就下好了,唰的一下很快啊,一两秒就搞定了,所以你感觉不到电脑在偷懒,但是如果几百几千张的话,积少成多,众所周知,时间就是金钱,相当于我们在浪费金钱!

    要做一个勤俭节约的人,所以,不能浪费钱!

    那么,我们要怎么做呢?

    明确思路

    我们要做的,可以是让电脑在等待图片下载好的这段时间里,让它再去下载另一张图片,然后再它等待另一张图片下载好的时候,再让它去下载另另一张的图片……

    也就是异步!!!

    如果不是异步,就是同步,同步就是按照代码的流程走,不带拐弯的。

    那我们是不是可以这样想,需要等待的是下载图片的这个过程:

    在这里插入图片描述
    也就是向网络请求的这一块地方!

    为什么不是起名,拼接,保存的那些地方呢?

    因为做这些操作的时候所利用到的是电脑的性能,如果电脑的性能不过关的话,怎么也不会快的,但是下载东西不同,是可以多线程的!

    思路明确,让我们把小明替换成美女 美丽的图片!

    (`・ω・´)

    检验思路

    首先,将我们源码中的这一部分:
    在这里插入图片描述

    单独拿出来,剩下的全部封装到方法中:

    async def meinv():
        # 指定第一个url
        url = 'http://www.win4000.com/zt/dongman.html'
        # 指定伪装头
        headers = {
            'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'
        }
        # 读取第一个url
        response = requests.get(url=url, headers=headers).text
        # 树化第一个页面
        tree = etree.HTML(response)
        # 找到图片对应的第二个页面(li列表)
        leaf = tree.xpath('//div[@class="tab_tj"]//ul[@class="clearfix"]/li/a/@href')
        # 遍历每一张图片所对应的第二个页面
        for a in leaf:
            # 防止出错中止程序
            try:
                # 设置局部变量,177105_b
                b = 1
                # 循环获取图集里的每一张图片,默认最多10张
                while b < 11:
                    # 切割-->拼接
                    c = a.split('.html')[0]
                    d = c + '_' + str(b) + '.html'
                    # 当前图集的下一张
                    b += 1
                    # 对第二个页面开始读取,前面的都是为了方便找url
                    e = requests.get(url=d, headers=headers).text
                    # 树化第二个页面
                    f = etree.HTML(e)
                    # 在第二个页面里找到我们要的图片地址 [0]是指把列表里第一个元素提取出来,可以这么拼接!!
                    g = f.xpath('//div[@class="main"]//div[@class="pic-meinv"]/a/img/@src')[0]
                    # 获取图片的二进制数据
                    h = requests.get(url=g, headers=headers).content
                    # 给图片起名
                    i = 'setu/' + g.split('/')[-1]
                    # 持久化存储
                    with open(i, 'wb') as fp:
                        fp.write(h)
            except:
                print('出错啦')
    

    因为是直接复制到了之前小明学习英语的方法里,所以就只改了下函数名,诶嘿。

    但是,到这里我们就全部错了!大错特错的那种!!

    为什么呢?还记得我们之前说的阴阳人吗,只有阴阳起来,才能融入这个环境,很明显我们的requests模块是个正人君子,也就是说,如果要用异步,我们就没有办法用requests模块,如果要用requests模块就没有办法用异步!这就是不兼容。

    检验结果

    单从结果来说,我们算是失败了,但是思路是没有问题的,出问题的地方就在requests模块不能用这个点上,也就是说只要我们能找到一个代替requests模块并且支持异步大的新模块或者方法 ,就可以完美解决这个问题,那么有没有呢?

    有!而且也很简单,但是今天先不介绍这一种方法,不要忘了我们今天的目标,进一步理解异步,还有下载美女 美丽的图片!

    step4:线程池

    关于对异步的进一步理解,如果还是没有听懂也没有关系,因为这条道路任重而道远,小泽还会继续跟大家详细地讲解异步协程这一块的知识!

    今天,我们就来用一个异步的下位方法,也就是在一定程度上能代替异步的方法:线程池!

    通俗点讲,就是一个人看50部小电影会受不了,但是50个人每人看1部小电影就会意犹未尽,而且也能完成看50部小电影的目标。

    废话不多说,直接上高速!

    步骤

    首先,先导入线程池的模块:

    from multiprocessing.dummy import Pool
    

    然后让我们实例化一个线程池的对象!

    # 实例化一个有x个线程的线程池对象,这里我们开启两个线程
    pool = Pool(2)
    

    准备工作已经完成,接下来我们只需要把任务列表添加到这个线程池里就可以啦,注意,是任务列表哦!

    所以我们需要提前准备好一个存放任务的列表:

    # 创建一个任务列表
    renwu_list = []
    

    接下来,就让我们去找任务吧!

    爬取美女 美丽的图片:

    首先打开我们的传送门①号,在一开始就有哦,不要偷懒,上去翻一翻!

    在这里插入图片描述

    往下翻一翻,发现图片是会一直出现的,也就是说是阿贾克斯请求,是动态加载的图片!

    不管3x7=21,直接打开抓包工具康一康:
    在这里插入图片描述

    用我们猛男的金手指定位到第一张图片,发现了一张图片链接,不过只是个缩略图而已,我们要的上它上面的那个链接,点进去看一看!

    在这里插入图片描述

    看到开头的a了吗,在html网页的编写里,通常用a标签写可以跳转到其他页面的东西,记住喽!

    我们一般点的按钮上面,说不定也是一个按钮上面覆盖一个a标签。

    在这里插入图片描述

    点进去后发现有一张比较大的图片了,打开抓包工具康一康够不够大:

    在这里插入图片描述
    可以看到,虽然确实大了一点,但还是不够大,远远满足不了我们!

    观察一下图片周围的页面:

    在这里插入图片描述
    发现有两个下载的按钮,那么这两个下载的按钮一定就是向服务器发送请求然后获取更大的图片吧!

    但是这里就牵扯到模拟登陆的知识点了,这一块我们后续再讲,所以先爬去中等份的图片,留一点悬念~

    为了以防万一,我们还是在抓包工具中全局搜索一下,看看会不会有漏网之鱼!

    在这里插入图片描述
    找完14张jpg格式的图片发现都不是我们想要的大图片,果然是通过请求获得的。

    (`・ω・´)

    不过没关系,这里我们先观察刚进去时候的页面,就是那个动态加载的页面,找到规律!

    在这里插入图片描述
    一直往下滑会发现,一直有index_xx.html的文件出现,每一份里面有一定量的图片,当然也保存了图片对应的缩略图和跳转页面的url对吧,那我们直接向index_xx.html发送请求,是不是就可以拿到发送过来的页面数据呢,让我们试一试吧:

    在这里插入图片描述
    通过观察,我们发现这些图片都是在ul下的li列表里,所以我们先爬取ul列表下所有的li标签里对应的数据!

    import requests
    from lxml import etree
    url = 'https://www.52dmtp.com/pcwallpaper/index_15.html'
    headers = {
            'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'
    }
    # 发起请求获得数据
    response = requests.get(url=url,headers=headers).text
    # 树化处理返回的数据
    tree = etree.HTML(response)
    # 定位查找li列表
    li_list = tree.xpath('//div[@class="w1200 r content"]/ul/li')
    print(li_list)
    

    最后我们打印出li_list,看看有没有数据!

    在这里插入图片描述
    好的,很成功,一个好的开始往往决定了美好的未来,让我们继续前进!

    注意我们这里选的url,是index_xx.html,也就是说xx可以是我们自己决定的,因为它每一次返回的数量是固定的,后期可以用循环反复请求!不要纠结不要纠结不要纠结!!!

    然后用循环把所有的数据都遍历出来:

    # 循环读取列表中每一条li
    for li in li_list:
    	# 在li中找src,这里我们直接找的缩略图,省事
        data = li.xpath('./div/a/img/@src')[0]
    

    为什么要直接找缩略图呢?因为我们已经得不到完美的图片了,不如不要,所以这里只是为了明确思路,好继续下一步,我们就勉为其难地下载缩略图吧!

    # 循环读取列表中每一条li
    for li in li_list:
        data = li.xpath('./div/a/img/@src')[0]
        name = li.xpath('./div/a/img/@alt')[0]
        a = requests.get(url=data,headers=headers).content
        with open(name,'wb') as fp:
            fp.write(a)
    

    这里我们把图片的名字也给进行了定位,下载起名一气呵成,运行走你!
    在这里插入图片描述

    好家伙,直接报错,原因大概就是解码的问题吧,不过不要紧,遇到乱码,我们就……

    # 循环读取列表中每一条li
    for li in li_list:
        data = li.xpath('./div/a/img/@src')[0]
        name = li.xpath('./div/a/img/@alt')[0]
        # 遇到乱码就用这个转换
        name = name.encode('iso-8859-1').decode('utf-8')
        # 由于有的名字太长了,所以弄短一点
        name = name[0:10]+'.jpg'
        a = requests.get(url=data,headers=headers).content
        with open(name,'wb') as fp:
            fp.write(a)
    

    在这里插入图片描述
    可以看到我们是成功的爬下来的图片,虽然没有爬下来高清大图,但是毕竟还没有学到模拟登陆,所以君子报仇,四年不晚,等我们学会了模拟登陆再去一探究竟!

    然后把整个方式封装成一个函数!!

    当然url和headers就不用封装进去了,我们可以通过外部输入url来实现动态下载,headers也是要写死的。

    在这里插入图片描述
    呐呐呐,就是这样子,然后我们改一下参数!

    在这里插入图片描述

    然后我们只要往这个方法里放url,就可以了对吧,然后找回我们之前写的线程池的任务列表,把url放进去!

    在这里插入图片描述
    这里小泽就放了两个任务列表,如果你想一次性下很多当然也可以放很多任务进去~

    在这里插入图片描述
    由于线程池部分上面讲过,所以不多累赘,最好是弄个计时,可以看花了多少时间~

    在这里插入图片描述

    相信聪明的你一定能看懂吧!

    (`・ω・´)

    运行走你:

    报错了…

    在这里插入图片描述
    记得这里改一下,hh

    再次运行,走你!

    在这里插入图片描述
    可以看到我们就用了0.6秒哈~

    在这里插入图片描述
    如果不用线程池呢? 我们来试一下!

    在这里插入图片描述
    在这里插入图片描述
    可以看到,用了1.3秒!!

    怎么样,厉害吧!!
    在这里插入图片描述
    不过也是下了一堆没用的图片…

    到了这里相信大家应该都明白怎么初步提高效率了! 等下次我们再来详细讲解怎么用异步协程来进行这一操作!!

    那模拟登陆就到下下次喽~

    (`・ω・´)

    看评论

    写着写着也写到第10篇了,有很多支持小泽的兄弟姐妹们,在这里表示十分感激哈!!!

    如果写这些能对你有帮助,那就太好了!!!

    不过也有很多小伙伴会有各种各样的需求,有一些是想学这个找工作,还有一些是学着玩,还有的呢就是喜欢小泽(会有吗??)……

    咳咳,话不多说,这里尝试给回复一下平时都没有怎么看的评论哈:

    在这里插入图片描述
    不然嘞,你爬一次人家的服务器就要理你一次,刚开始大家都有兴趣,处于摸索阶段,往后就腻了嘛~

    在这里插入图片描述
    这里当然还是希望你能学会而不是来看段子的,hh

    在这里插入图片描述
    为什么你们上班都能摸鱼的…好了不说了,老板来了。

    在这里插入图片描述
    嘿兄弟,犯法的事咱们可不干,不要有心理负担,hh

    在这里插入图片描述
    新版本不一定好用,懂了吧

    在这里插入图片描述
    看大家的反映喽~

    在这里插入图片描述
    这里还是推荐大家有目标的去学,而不是看见哪个方便就学哪个,有时候钻研一个模块也能弄出很厉害的东西的。

    在这里插入图片描述
    嘛,如果你们愿意,我也不介意~

    在这里插入图片描述
    实不相瞒,每次理发那人都说我发质好!

    在这里插入图片描述
    我是怀了吗…还流产呢,好好说话

    在这里插入图片描述
    虽然不知道哈尔是谁…但还是替你高兴吧

    在这里插入图片描述
    那可不

    在这里插入图片描述
    ???

    在这里插入图片描述
    学会了都是自己的功劳嘛~所以犒劳一下努力的自己吧!

    在这里插入图片描述
    模拟登陆下下次做哦,不会咕咕咕的那种。

    在这里插入图片描述
    在这里插入图片描述
    ……我也爱你好了

    好了,各位也早点睡,hh

    (`・ω・´)

    展开全文
  • 一起学爬虫(Python) — 05

    万次阅读 多人点赞 2020-11-29 19:46:51
    所以,今天带大家一起爬一些好看的,图片~ 话不多说,直接高速! http://www.win4000.com/zt/dongman.html 作为一个老二刺猿,当然是直接找动漫图片~ 分析 打开页面后往下拉,发现图片是真滴好看…… 里面还有我的...

    一起学爬虫(Python) — 19 年轻人,进来学自动化

    今天我们爬图片

    开始

    大家好鸭,又是新的一天!
    无论做什么事情,都要恪守初心,要知道我们是为了什么才学爬虫的,比如我,就是为了爬取一些好看的图片……
    所以,今天带大家一起爬一些好看的,图片~
    话不多说,直接高速!
    http://www.win4000.com/zt/dongman.html
    作为一个老二刺猿,当然是直接找动漫图片~

    分析

    在这里插入图片描述
    打开页面后往下拉,发现图片是真滴好看……
    里面还有我的02老婆~
    认真分析,看到这一张张的图片,我们是不是可以认为这些图片是放在一个列表里的,所以一会我们爬取这个列表,然后把每一张图片遍历出来就可以了,对吧!(遍历大意:用循环把列表中每一个元素列出来)
    好,打开我们的抓包工具!(审查元素 或 检查)
    在这里插入图片描述
    找到图片所对应的位置,发现直接就有图片了,那我们直接爬取整个页面,再把爬取到的数据筛选一下,只要图片的网址然后再单独下载不就好啦~
    这个想法是对的,但是打开那个网址会发现……
    在这里插入图片描述
    我们上当了!
    这只是一个缩略图,那么真正的图片在哪里呢?学过html的同学应该能直接找到,没学过的呢,就跟着小泽一起往下走。
    我们点开某一张图片,会发现跳到了另一个页面。

    在这里插入图片描述
    在新的页面,我们会发现有个下载按钮,还有个左右切换的按钮。
    先点击一下下载按钮试试……
    在这里插入图片描述
    好家伙,直接好家伙。
    一看后缀名就知道,我们又上当了!
    这个按钮或许会给你一种错觉,跟昨天的翻译按钮一样,会不会返回一个图片,我们只要接收了再保存就好了。
    这个想法是没错的,但是奈何这个网站太狡猾,实在是狡猾!
    这个时候打开抓包工具看一下我们要的东西还有没有。
    在这里插入图片描述
    找到你啦,色图 美图!
    我们再打开这个链接,看一下是不是真正的大图。
    在这里插入图片描述
    可以了可以了,够大了!
    那么我们现在就是找到了真正存放图片的地址,但是还有一个地方不能忽略,来回切换的那个按钮,到底有什么用?
    我们点一下,注意观察网址的变化!
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    发现规律了没,网址每一次都会在177098_后面加1,那么177098_1是不是就是第一张图片呢?大家可以试一下。
    试完你就会发现还真的是诶,好神奇!
    但是还有个问题,这一组图片是8张,也就是177098_1到177098_8,那么其他的图组是不是呢(一开始还以为是一张一张图片,上当啦,hh)
    在这里插入图片描述
    好的,果然让我们发现一个,那就是说每组图组里面图片的数量是不固定的,只爬第一张怎么会满足呢!
    这样想,如果我们上面那个图组出现177098_9会怎么样?
    程序不出意外应该会报错,那我们只要建立一个死循环,在报错的时候就终止循环,就可以不用管它有多少张,我全都要的下载下来啦!
    思路很明确,但是实现起来…

    嗨,先硬着头皮上吧,啃!

    实践

    import requests
    url = 'http://www.win4000.com/zt/dongman.html'
    headers = {
        'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'
    }
    
    

    首先导入我们的requests模块,先设好url和响应头信息。
    在这里插入图片描述
    通过抓包工具我们发现,这些图片确确实实可以当做一个列表,每一个li标签都在class为clearfix的ul标签里。
    那我们有没有办法只获取这一部分数据呢?
    办法是有的,但是突然告诉你可能会很迷茫,不过不要纠结,先用着。

    from lxml import etree
    

    这就是我们的解决方法,etree,我是这样理解的,把网页变成一棵树,很easy的就找到我们要的树叶。
    当然你也可以百度一下这个模块,多了解一下~

    response = requests.get(url=url,headers=headers).text
    tree = etree.HTML(response)
    leaf = tree.xpath('//div[@class="tab_tj"]//ul[@class="clearfix"]/li/a/@href')
    

    第一句大家应该能看懂吧,把响应的页面数据以文本的形式给response。
    第二句的意思呢,就是把文本形式的网页数据给变成大树!可以这么理解哦,因为我们要找的是某一片叶子,所以要用etree.HTML()把它大树化~
    第三句里的leaf是叶子的意思哦,要记住这个xpath,查帕斯查帕斯查帕斯,这是我们找叶子的一种方法,一般来说是可以直接在抓包工具那里直接右键复制xpath,就是你要找的地方的xpath,但是这个网站复制过来的xpath并不怎么管用,这也说明了方便不一定好用哈~
    所以这里小泽就手打了xpath语句。
    // 的意思是不用从根目录开始,如果只打一个斜线就是要从/html开始了,但是我们直接找class为tab_tj的div就行了,中间的//意思就是div和ul中间不是还有东西嘛,直接跳过了,不一一打出来了,一个下划线就是跳一级,最后的@href就是直接艾特我们要的数据,他就会乖乖过来啦!
    上图~
    在这里插入图片描述
    这就是xpath方法哦,记住了,查帕斯!
    那我们一会肯定要给图片起名的嘛,就可以再弄一个叶子,最后改成@alt就行啦~

    在这里插入图片描述
    这里小泽是遍历了一下叶子,记住喽,爬下来的是个列表~
    在这里插入图片描述
    不过爬下来的网址里混入了几个不明物体,这个小泽也不知道是为什么诶,有会的大佬欢迎留言一下~
    一会用处理报错的那个东西,try和except~
    很多同学可能会还处于懵逼状态,如果是因为对xpath那块不理解的话,留言一下,如果点赞留言的人多的话,后续会专门写一篇关于我们去找我们要的数据的方法相关的文章!(谁不喜欢偷懒呢,hhh)

    import requests
    from lxml import etree
    import os
    # 指定第一个url
    url = 'http://www.win4000.com/zt/dongman.html'
    # 指定伪装头
    headers = {
        'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'
    }
    # 读取第一个url
    response = requests.get(url=url,headers=headers).text
    # 树化第一个页面
    tree = etree.HTML(response)
    # 找到图片对应的第二个页面(li列表)
    leaf = tree.xpath('//div[@class="tab_tj"]//ul[@class="clearfix"]/li/a/@href')
    
    # 创建一个文件夹
    if not os.path.exists('./setu'): # 如果该文件夹不存在,则创建
        os.mkdir('./setu')
    
    
    # 遍历每一张图片所对应的第二个页面
    for a in leaf:
        # 防止出错中止程序
        try:
            # 设置局部变量,177105_b
            b = 1
            # 循环获取图集里的每一张图片,默认最多10张
            while b < 11:
                # 切割-->拼接
                c = a.split('.html')[0]
                d = c+'_'+str(b)+'.html'
                # 当前图集的下一张
                b += 1
                # 对第二个页面开始读取,前面的都是为了方便找url
                e = requests.get(url=d,headers=headers).text
                # 树化第二个页面
                f = etree.HTML(e)
                # 在第二个页面里找到我们要的图片地址 [0]是指把列表里第一个元素提取出来,可以这么拼接!!
                g = f.xpath('//div[@class="main"]//div[@class="pic-meinv"]/a/img/@src')[0]
                # 获取图片的二进制数据
                h = requests.get(url=g,headers=headers).content
                # 给图片起名
                i = 'setu/'+g.split('/')[-1]
                # 持久化存储
                with open(i,'wb') as fp:
                    fp.write(h)
    
        except:
            print('出错啦')
    

    废话不多说,直接把全部代码都弄上来啦!
    其实都是刚敲的,网站也是刚找的,还有点怕翻车,hhh
    上面代码里跟爬虫有关的知识已经跟大家说的差不多了,看着注释应该也能大概明白,要学的不是上面的代码哦,是思路。
    有了思路,就很容易有目标的去学习啦~
    由于很多代码是跟基础有关的,而且思路也跟大家分析明白了,所以就不多说了,如果你真的真的哪里看不懂,搞不明白的话,不要怕,没有什么别人都会我不会不好意思问什么的,放心大胆的留言,留言的时候最好带上自己出错的代码或者不明白的代码,一定鼎力相助!
    一起变得更厉害吧!
    话说今天没有加表情包诶……
    在这里插入图片描述
    这是小泽刚才爬下来的图片,都是可以直接当屏幕壁纸的那种哦!
    不乏春光乍露之图,哇哦~
    在这里插入图片描述

    那么,各位晚安喽~
    最后的最后,给个赞和关注再走好不好QAQ
    还有已经关注了小泽的粉丝可以任性的提问题和请求哦,比如想爬哪个网站,或者想学哪方面的知识,粉丝专利哦!!!
    ByeBye~

    展开全文
  • 一起学爬虫(Python) — 01

    千次阅读 多人点赞 2020-11-25 19:06:10
    首先要了解爬虫1.什么是爬虫1.自言自语2....每一门技术之前都要了解我的是什么,为什么要,好学吗…… 但是小泽不要这么,为什么呢? 如果跟别人一样的话,那有那么多优质的文章摆在前面,像
  • 人有悲欢离合,月有阴晴圆缺。少不了离愁别绪,人生就是这样,喜也一天,悲也一天,直待,慢慢老去。老去,必将面临着死亡。...以后陆续会把自己调通的驱动都写写博客和大家一起分享下。  
  • 从零开始一起学习SLAM | 学习SLAM到底需要什么?

    万次阅读 多人点赞 2018-09-10 23:07:42
    SLAM涉及的知识面很广,我简单总结了 “SLAM知识树” 如下所...每个SLAM的小伙伴可以说都是冒着“头顶凉凉”的巨大风险,勇气可嘉。下面结合SLAM知识树展开具体说说。 编程环境 首先先说电脑环境和编程。 1、...
  • 一起学爬虫(Python) — 08

    千次阅读 多人点赞 2020-12-03 15:05:17
    还记得我们爬虫的初衷吗? 有的人是为了钱,有的人是为了当老司机,还有的人是为了更多的钱,那么我们这几天爬下来的东西,跟钱有什么关系呢? 举个栗子: 我们爬取了很多很多耳机的数据,从中筛选出好
  • 一起学爬虫(Python) — 19 年轻人,进来学自动化

    千次阅读 多人点赞 2020-12-23 11:44:50
    那么话不多说,直接带大家起飞,好好,好好问,你也可以成为大神! 什么是自动化 今天我们说到的自动化,不是你们可能听过很多的无人驾驶,机器人鸭什么的,就是没有那么高级哈。 这个自动化呢,在python里面用一...
  • 特权和你一起学NIOS2(完整版)

    热门讨论 2011-10-19 11:06:53
    总结并下载了特权和你一起学NIOS2,集合了所有的版本位初学者提供了一个基本的学习平台,读完本教程,读者会对NIOS2有更深刻的认识
  • 全网最受欢迎的Word畅销课!超2万人学习! 不要以为word很简单哦! 系统视频讲解+图文课件+配套习题+老师答疑, 帮你搞定各种Word的疑难杂症, 不再为Word文档排版而烦恼。 使用最频繁的软件最值得学习,因为它能...
  • 昨天的博客《一起学libcef–开篇(下载、CMake的使用)》讲诉如何下载CEF,并如何得到对应vs版本的解决方案。今天就展示一下,得到的工程文件夹中文件的作用。include – 这个文件夹里面放CEF客户应用程序所需的头文件...
  • 一起学习CC3200系列教程之SDK简介

    千次阅读 2015-06-10 22:46:36
    一起学习CC3200系列教程之SDK简介  阿汤哥 序: 能力有限,难免有错,有问题请联系我, QQ1519256298 hytga@163.com Pdf下载http://pan.baidu.com/s/1hqiWB56     我们看一下sdk的目录: | |--docs ...
  • 搞完毕设之后与本科毕业还有两个月的时间,这段时间除了每天到处无聊闲逛之外,还是决定做点什么,于是就拿来网上一个现成的开源SLAM代码,看看别人是怎么将SLAM写成一个完备的工程库的所以就写了一起学ORBSLAM2这个...
  • 与你一起学Oracle 11g(上)

    千人学习 2017-04-07 11:17:36
    如果你刚刚了解Oracle,本门课程将是你不二的选择,该课程将带你走进Oracle的大门,本课程以接地气的语言来讲解,让你听的懂,的会!本课程以全新的方式为你呈现Oracle内容,清新脱俗独具特色的授课方式将带给你新...
  • 跟我一起学extjs5(32--加入模块和菜单定义[4根据后台信息更新菜单])  这一节根据后台传递过来的菜单分组和菜单定义,以及模块定义来更新4种类型的菜单。  按钮菜单和标准菜单的数据格式是一样的,生成的函数都在...
  • 与你一起学Oracle 11g(下)

    千人学习 2017-04-07 11:41:50
    如果你刚刚了解Oracle,本门课程将是你不二的选择,该课程将带你走进Oracle的大门,本课程以接地气的语言来讲解,让你听的懂,的会!本课程以全新的方式为你呈现Oracle内容,清新脱俗独具特色的授课方式将带给你新...
  • 这本书将帮助你解决如下问题:1、获取数据;2、计算和分析数据;3、让数据会说话;4、批量化整理数据;5、函数公式;6、浏览、打印和保护表格;7、准确有效地;8、效率工具。
  • 一起学《Troubleshooting Oracle Performance》吧:http://www.cnblogs.com/preftest/archive/2011/12/23/2300017.html
  • 一起学做扣扣(python) — 00

    千次阅读 多人点赞 2020-12-16 16:24:06
    Hello大家好,跟着我一起继续深入探索Pyqt5吧! 那么首先呢,大家要安装一下Pyqt5的模块还有pyqt5-tools的模块,至于怎么安装呢… 先找到我们的File,然后点进去哈,找到里面的Settings,,再找到settings里面的...
  • 想学习安全测试,但没有环境,又不能去网上乱搞,是不是很头大,今天博主就教你搭建一个自己的安全测试环境——DVWA ...专门就是为了帮助安全测试人员去学习与测试工具用的。...下载那么首先我们需要搭建P
  • 和Pig一起学英语

    千次阅读 2009-02-18 12:55:00
    下载(需要一个积分)。软件自带帮助文档,仅支持Windows系统。 运行界面: 输出结果: 列表形式: 卡片形式: 版权声明 请尊重原创作品。转载请保持文章完整性,并以...
  • 一起学docker(3)--安装并运行ubuntu

    千次阅读 2016-09-30 16:19:46
    看了前两篇博客,是否是已经摩拳擦掌了,我们马上开始1,docker安装(ubuntu系统) docker还是对linux做的最好,如果你是windows,建议先安装个虚拟机,装一个linux,然后在进行...2,下载镜像安装好docker后,启动
  • windows上需要搭建Python环境,下载sqlmap包并解压。kali linux自带(之后演示在kali上)。 设置dvwa级别为low(medium,high都可以,不要设成impossible就行) 打开dvwa的SQL Injection,打开浏
  • 之前博客《一起学libcef–搭建自己的libcef运行环境(Win32程序,错误C2220解决方案)》讲述了如何在win32程序中搭建libcef的环境,今天就通过一个简单的例子,在windows程序中使用libcef。现在再重新写一下如何搞?...
  • 和屌丝一起学cocos2dx-CCScrollView

    千次阅读 2013-08-24 19:18:12
    声 明  本教程仅用于初学cocos2dx同学使用,内容由本人(孤狼)学习过程中笔记编写,本教程使用cocos2dx版本为2.1.4。... Hello,大家好,欢迎回到“和屌丝一起学coco2dx”系列教程,上次我们一起用

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 254,994
精华内容 101,997
关键字:

下载一起学