帮忙写一段爬取亚马逊所有分类的PHP代码
时间: 2023-03-06 09:00:39 浏览: 108
答:<?php // 定义亚马逊分类页面的 URL $AmazonUrl = 'https://www.amazon.com/gp/site-directory/'; // 使用 file_get_contents 函数从网页中获取内容 $content = file_get_contents($AmazonUrl); // 使用 preg_match_all 函数搜索所有分类的 URL preg_match_all('/<a href="(.*?\\/ref=sd_allcat_sbc_np_xx\\/.*?)"/', $content, $matches); // 获取所有分类的链接 $links = $matches[1]; // 遍历所有分类的链接,依次执行操作 foreach($links as $link) { // 从分类页面下载数据 $categoryContent = file_get_contents($link); // 使用 preg_match_all 函数搜索所有产品的 URL preg_match_all('/<a href="(.*?\\/dp\\/.*?)"/', $categoryContent, $matches); // 获取所有产品的链接 $products = $matches[1]; // 遍历所有产品的链接,依次执行操作 foreach($products as $product) { // 读取产品信息,并存储到数据库中 // ... } } ?>
相关问题
python爬取亚马逊数据代码
以下是一个简单的Python爬虫示例,可以用来爬取亚马逊上的数据:
```
import requests
from bs4 import BeautifulSoup
# 要爬取的亚马逊页面的URL
url = 'https://www.amazon.com/s?k=python+book&ref=nb_sb_noss'
# 发送GET请求并获取响应内容
response = requests.get(url)
# 使用BeautifulSoup解析响应内容
soup = BeautifulSoup(response.content, 'html.parser')
# 找到页面中所有书籍的标题和价格
for product in soup.find_all('div', {'class': 's-result-item'}):
title = product.find('h2', {'class': 'a-size-mini'}).text.strip()
price = product.find('span', {'class': 'a-price-whole'}).text.strip()
# 打印书籍的标题和价格
print('Title:', title)
print('Price:', price)
```
以上示例将爬取亚马逊上搜索关键词为"python book"的所有书籍的标题和价格。请注意,亚马逊网站有反爬机制,因此在实际应用中可能需要采取一些反反爬措施。
爬取亚马逊产品图片 附python代码
好的,以下是一个简单的 Python 爬取亚马逊产品图片的示例代码:
```python
import requests
from bs4 import BeautifulSoup
import os
# 设置要爬取的产品页 URL 和保存图片的文件夹路径
url = 'https://www.amazon.com/dp/B07Y5VQ8KR'
save_dir = './images'
# 创建保存图片的文件夹
if not os.path.exists(save_dir):
os.makedirs(save_dir)
# 发送请求并解析 HTML
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
# 获取产品名称
product_name = soup.find('span', {'id': 'productTitle'}).get_text().strip()
# 获取所有图片节点
img_nodes = soup.find_all('img', {'class': 's-image'})
# 遍历所有图片节点并下载图片
for i, img_node in enumerate(img_nodes):
# 获取图片 URL
img_url = img_node.get('src')
# 发送请求并保存图片
response = requests.get(img_url)
file_name = f'{product_name}_{i}.jpg'
file_path = os.path.join(save_dir, file_name)
with open(file_path, 'wb') as f:
f.write(response.content)
# 输出下载进度
print(f'Downloaded {file_name}')
```
需要注意的是,上述代码中的产品 URL 需要根据实际情况进行修改,同时也需要根据实际情况修改保存图片的文件夹路径。此外,上述代码中只会下载产品页面中显示的图片,如果需要下载更多图片,可以参考浏览器中 Network 面板中的请求,找到对应的请求 URL 进行下载。
阅读全文