Python---爬取京东商城的图片

爬取京东商城的图片

1.咱们爬取数据时首先本身要明确须要什么,咱们在爬取京东商城的图片是首先要获取url,打开京东网页,点击手机类型,选择所有手机,观察浏览器的地址栏的变化,发现url主要是有:https://list.jd.com/list.html?cat=9987,653,655&page=1,而page就是每页的标志.html

2.点击F12,经过浏览器查看部分源代码,寻找特需规律,咱们发现每一页开始都是从<div id="plist">开始的,以<div class="page clearfix">结束的,接着查看图片的规律,<img width="220" height="220" data-img="1" data-lazy-img="//360.sadsad/dsas544/rffdfsdf55/dsfdsf.jpg">,那咱们就能够根据这个规律来写正则表达式来过滤咱们想要的信息。python

<div id="plist".+?<div class="page clearfix">正则表达式

<img width="220" height="220" data-img="1" data-lazy-img="//(.+?\.jpg)">浏览器

def craw(url, page):
    # 1.获取网页的数据
    html1 = urllib.request.urlopen(url).read()
    html1 = str(html1)
    # 2.经过正则获得每页图片的数据
    pattrn1 = '<div id="plist".+?<div class="page clearfix">'
    result1 = re.compile(pattrn1).findall(html1)
    image = result1[0]
    # 3.在经过正则拿到每页全部的图片连接
    pattrn2 = '<img width="220" height="220" data-img="1" data-lazy-img="//(.+?\.jpg)">'
    imaglist = re.compile(pattrn2).findall(image)
    # 4.遍历全部的图片连接,将图片保存在本地,经过页号和序号有序的排列
    x = 1
    for imageurl in imaglist:
        imagename = "D:/python/image"+str(page)+str(x)+".jpg"
        imageurl = "http://"+imageurl
        try:
            urllib.request.urlretrieve(imageurl, filename=imagename)
        except urllib.error.URLError as e:
            if hasattr(e, "code"):
                x += 1
            if hasattr(e, "reason"):
                x += 1
        x += 1    


for i in range(1, 79):
    url = "https://list.jd.com/list.html?cat=9987,653,655&page="+str(i)
    craw(url, i)

其实爬虫的关键是在于分析,咱们要根据本身的需求对网页及西宁分析,而后找出规律,写出正确的正则表达式来过滤本身的信息,拿到想要的东西,在就是在请求的过程当中咱们须要注意许多细节。url

相关文章
相关标签/搜索