python3爬取百度图片

作者: 9ba4bd5525b9 | 来源:发表于2019-03-27 15:03 被阅读22次

    最终目的:能通过输入关键字进行搜索,爬取相应的图片存储到本地或者数据库

    首先打开百度图片的网站,搜索任意一个关键字,比如说:水果,得到如下的界面

    分析:

    1、百度图片搜索结果的页面源代码不包含需要提取的图片信息,需要借助Chrome调试工具(F12调出)分析请求的URL地址

    2、图片显示页面没有翻页按钮,但是页面一直往下拉会生成新的图片,这是典型的AJAX数据

    F12打开调试工具,刷新网页,点击选中Network选项卡中的XHR标签(这个标签加载的就是AJAX请求),此时只能看到一条loginfo开头的信息,字面上可以理解为和登录相关的内容,先不管它

    把网页往下拖动,可以看到有新的信息加载出来

    这些加载出来的都是以acjson开头的信息,点击之后查看Headers、Preview、Response标签,可以看出来这里面包含了我们需要的图片信息

    对比一下这几条信息的headers中Request URL可以得出参数中有三个值在变化,一个psm,一个pn,还有一个14。。。开头的数字,经过测试可以发现,实际上pn的值是最关键的,它影响翻页,其他两个可有可无。(对比url建议用一些在线代码对比工具,要不然眼睛要瞎)

    下面开始写代码:

    一、请求网页,获取html文本(百度图片有防盗链,加个Referer)

    二、使用正则表达式提取真实图片的地址(选的是小图,大图在objURL里,需要经过简单的解密)

    三、请求图片的url,返回content(图片信息需要以二进制写入)

    四、保存图片(因为是测试,我写的是绝对地址,正常需要用相对地址)

    五、定义一个主函数(百度图片每次最多请求30张,即使改了其他请求参数也最多60张)

    六、最后写一个函数入口

    相关文章

      网友评论

        本文标题:python3爬取百度图片

        本文链接:https://www.haomeiwen.com/subject/lxmzvqtx.html