图片爬取实战一

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

思路:
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)

  

原文地址:https://www.cnblogs.com/xieshengsen/p/7007114.html