python爬虫实践----爬取京东图片

╰+攻爆jí腚メ 2022-06-08 02:16 440阅读 0赞

爬虫思路:
1.分析url:

  1. http://list.jd.com/list.html?cat=9987,653,655&page=1
  2. # url只有page变化,而page代表了页数

这里写图片描述

  1. 提取url内容并正则匹配出需要的内容

    urllib.request.urlopen(url).read();

    读取指定url的全部内容

下面是根据正则的re库匹配出所需要的dom节点

3.根据匹配出的图片url筛选出图片并下载图片

4.最后通过循环,遍历出所有的页数

完整代码:

  1. import re
  2. import urllib.request
  3. def craw(url,page):
  4. ## 读取url地址中的页面
  5. html1 = urllib.request.urlopen(url).read();
  6. ## 读取url的全部信息并转为字符串
  7. html1 = str(html1);
  8. ##匹配元素1---父节点
  9. pat1 = '<div id="plist".+? <div class="page clearfix">';
  10. result1 = re.compile(pat1).findall(html1);
  11. result1 = result1[0];
  12. ##匹配元素2--子节点
  13. pat2='<img width="220" height="220" data-img="1" data-lazy-img="//(.+?\.jpg)">';
  14. imagelist=re.compile(pat2).findall(result1);
  15. x=1;
  16. for imgurl in imagelist:
  17. #设置地址跟爬取图片的地址
  18. imagename="F:/pythonB/img/"+str(page)+str(x)+".jpg";
  19. imgurl= "http://" +imgurl;
  20. print(imgurl);
  21. try:
  22. #保存图片并定义图片名字
  23. urllib.request.urlretrieve(imgurl,filename=imagename)
  24. except urllib.error.URLError as e:
  25. if hasattr(e, "code"):
  26. x+=1;
  27. if hasattr(e, "reason"):
  28. x+=1;
  29. x+=1;
  30. for i in range(1,79):
  31. url = 'http://list.jd.com/list.html?cat=9987,653,655&page='+str(i)
  32. craw(url,i);

最后得到所有的图片:
这里写图片描述

发表评论

表情:
评论列表 (有 0 条评论,440人围观)

还没有评论,来说两句吧...

相关阅读