#图片信息爬取实战
#任务:爬取京东指定商品图片信息,并存储在当期目录下。
#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"))
# 存储方法2:
urlretrieve(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
'''
爬虫--3.4 实战案例:爬取京东商城指定商品图片信息,并存储在当期目录下(完整代码)
最新推荐文章于 2026-05-15 09:14:45 发布

&spm=1001.2101.3001.5002&articleId=110184632&d=1&t=3&u=95f547b7a0374db29c94905b99326c66)
1043

被折叠的 条评论
为什么被折叠?



