zoukankan      html  css  js  c++  java
  • 图片爬取实战一

    简介:爬取京东商城手机类商品图片

    思路:
    1. 获取需要爬取手机商品内容的url,
    打开京东商城首页 -- 手机/营运商/数码 -- 手机。获得URL为:https://list.jd.com/list.html?cat=9987,653,655

    2. 查看URL变化过程
    单击下一页,查看商品的URL变化情况
    点击第二页:URL为:https://list.jd.com/list.html?cat=9987,653,655&page=2&sort=sort_rank_asc&trans=1&JL=6_0_0&ms=5#J_main
    点击第三页:URL为:https://list.jd.com/list.html?cat=9987,653,655&page=3&sort=sort_rank_asc&trans=1&JL=6_0_0#J_main
    ......
    在这GET的请求中可以发现,关键信息为$page的字段信息,page的值代表者第几页
    所以,可以在爬取过程中使用 for 循环实现页面的切换

    3. 查看图片的网页信息
    F12 查看图片的信息,可以发现图片对应的链接代码是:
    <img width="220" height="220" data-img="1" src="//img14.360buyimg.com/n7/jfs/t5068/191/1900595808/365322/635c9e26/58f5c5e0Nb72bc1d3.jpg"

    4. 下载保存图片
    使用urllib.urlreieve()将对应链接的图片保存到本地


    脚本代码如下:

    import re
    import urllib
    import urllib2
    
    
    def JD_picture(url, page):
        html1 = urllib2.urlopen(url).read()
        html1 = str(html1)
    
    
        pat2 = '<img width="220" height="220" data-img="1" src="//(.+?.jpg)">'
        imagelist = re.compile(pat2).findall(html1)
    
        x = 1
        for imageurl in imagelist:
            imagename = str(page) + str(x) + ".jpg"
            imageurl = "http://" + imageurl
    
            try:
                urllib.urlretrieve(imageurl, filename="C:PyCharmCrawl_Photojingdong")
            except urllib2.URLError as e:
                if hasattr(e, "code"):
                    x += 1
                if hasattr(e, "reason"):
                    x += 1
            x += 1
    
    
    for i in range(1, 20):
        url = 'https://list.jd.com/list.html?cat=9987,653,655&page=' + str(i)
        JD_picture(url,i)
    

      

  • 相关阅读:
    Spring boot test
    SQL怎么输出前n个记录? n是中间计算得到的,不支持变量传递
    crontab 命令
    Python 素数判断;以及默尼森数
    精通Web Analytics 2.0 (1) 引言
    Python 编程小备忘
    Python 编辑器 tips
    Hadoop 权威指南学习1 (主要框架)
    ml的线性回归应用(python语言)
    python 学习5--matplotlib画图实践
  • 原文地址:https://www.cnblogs.com/xieshengsen/p/7007114.html
Copyright © 2011-2022 走看看