爬取京东手机图片并保存
时间: 2023-07-11 21:37:35 浏览: 164
为了爬取京东手机图片并保存,您可以按照以下步骤进行:
1. 打开京东手机分类页面,例如 https://list.jd.com/list.html?cat=9987,653,655
2. 打开浏览器的开发者工具,找到手机列表的 HTML 元素,分析其结构和属性,获取到每个手机的链接地址
3. 访问每个手机的链接地址,分析 HTML 元素,获取到手机图片的链接地址
4. 使用 Python 的 requests 库访问图片链接地址,获取图片二进制数据
5. 将图片二进制数据保存到本地文件中,使用 Python 的 open() 和 write() 方法即可完成
以下是一个简单的 Python 程序示例,实现了上述步骤:
```python
import requests
from bs4 import BeautifulSoup
import os
# 设置请求头,模拟浏览器访问
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
# 访问京东手机分类页面
url = "https://list.jd.com/list.html?cat=9987,653,655"
r = requests.get(url, headers=headers)
# 解析页面 HTML,获取每个手机的链接地址
soup = BeautifulSoup(r.text, 'html.parser')
items = soup.find_all('div', class_='p-name')
links = []
for item in items:
link = item.find('a')['href']
links.append(link)
# 遍历每个手机的链接地址,获取手机图片并保存
for link in links:
r = requests.get(link, headers=headers)
soup = BeautifulSoup(r.text, 'html.parser')
imgs = soup.find_all('img', class_='img-hover')
for img in imgs:
img_url = img['src']
img_data = requests.get(img_url, headers=headers).content
# 获取图片文件名
img_name = os.path.basename(img_url)
# 保存图片到本地
with open(img_name, 'wb') as f:
f.write(img_data)
print(f"保存图片 {img_name} 成功!")
```
注意,这个示例只是一个简单的爬虫程序,如果你需要爬取大量的数据,或者需要频繁地访问同一个网站,就需要考虑一些反爬虫策略,例如限制爬取速度、使用代理 IP、使用随机 User-Agent 等。
阅读全文