【python】【爬虫】urllib爬虫练习爬取服务器图片

练习爬取京东服务器图片

目标:收集京东的硬盘关键字中前10页的图片。仅搜索硬盘关键字,不添加其他关键词条如品牌、容量。

URL分析:查找硬盘关键字下的前几页链接,分析URL规律。下图中标黄的部分为不同的部分。

keyword和wq字段都是输入的关键字

page字段代表显示的页数,S字段表示从第几个商品开始显示

观察URL发现page字段的步长为2,S字段除了第一页外步长均为60,但尝试了在page=1,S=61和120的情况下页面均跳转至第一页的搜索结果,故暂时可以认为第一页是特殊情况。

但是尝试发现:page字段后面的S字段和click字段去掉,同样可以找到目标的效果。当page=1或2时,跳转到第一页;为3或4时,跳转到第二页。

分析需要的图片地址:

观察图片地址是在F12的源码中,还是图片放在JS文件中。若放在JS文件中则需要抓包分析,若在F12中则可使用正则筛选。

若在图片处右键有复制图片地址选项,且该地址真的是该图片,则大概率在F12中。

这个是右键复制的图片全地址,复制的这个地址在F12中找不到对应的源码

但去掉前面存储的位置,只保留存储的图片名时,可以在F12中找到对应的源码

代码

import urllib.request
import re

keyname="硬盘"
key = urllib.quest.quote(keyname)    #中文转码

#伪装服务器
headers = ("User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.101 Safari/537.36")
opener = urllib.request.build_opener()
opener.addheaders = [headers]
urllib.request.install_opener(opener)

# 爬取前十页
for i in range(0,20):
    this_num = 2*i-1
    url = "https://search.jd.com/Search?keyword="+key+"&wq="+key+"&pvid=25f31d795d4a452d9971102e78da76fd&page="+str(this_num)
    # 获取当页数据
    data = urllib.request.urlopen(url).read().decode("utf-8","ignore")
    # 图片正则
    pat='source-data-lazy-img="" src="//(.*?)"'
    # 查找
    picurl_data=re.compile(pat).findall(data)
    # 保存每一页的图片
    for j in range(0, len(picurl_data)):
        this_pic = picurl_data[j]
        # 拼接图片url
        this_picurl="http://"+this_pic
        file = "F:/爬虫练习/爬取京东"+"第"+str(i)+"页第"+str(j)+"张.jpg"
        urllib.request.urlretrieve(this_picurl, filename=file)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值