爬虫--3.4 实战案例:爬取京东商城指定商品图片信息,并存储在当期目录下(完整代码)

#图片信息爬取实战
#任务:爬取京东指定商品图片信息,并存储在当期目录下。
#url地址:https://list.jd.com/list.html?cat=9987,653,655

#导入库
import requests
import re
from pyquery import PyQuery as pq
from urllib.request import urlretrieve
import ssl

#若报错:unable to get local issuer certificate(无法获取本地颁发者证书)错误,请使用下面代码
#全局取消证书验证
ssl._create_default_https_context = ssl._create_unverified_context

#定义请求url地址
url = "https://list.jd.com/list.html?cat=9987,653,655"

# 如果一个网站老是爬取不了,就去做百分百的模拟浏览器请求,将Request Headers的信息全部粘贴上去进行模拟
headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36'
}

#使用requests爬取指定url信息
res = requests.get(url,headers=headers)
content = res.text

#使用pyquery创建解析器
doc= pq(content)
# print(doc)

#解析页面中的所有商品图片信息
imlist = doc("img[width='220'][height='220']")
# print(imlist)

#遍历并解析图片的url地址信息
m=1
for im in imlist.items():
    #获取图片的url地址(我不知道为啥我的显示是data-lazy-img,网页源代码上面是src
    imurl = "https:"+im.attr("data-lazy-img")
    # print(im.attr("data-lazy-img"))

    # 存储方法2urlretrieve(imurl,"./mypicture/p"+str(m)+".jpg")
    m += 1
    '''
    # 存储方法1:
    # # 默认情况下,当您发出请求时,响应正⽂会⽴即下载,⽽设置stream参数为true,则只有响应头已经下载并且连接保持打开状态。
    # with requests.get(imurl, stream=True) as ir: # 使⽤with的好处不⽤考虑close关闭问题。
    with requests.get(imurl,stream = True) as pic:
        with open("./mypicture/p"+str+".jpg",'wb') as f:
            for chunk in pic:
                f.write(chunk)
    m += 1
    '''
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值