如果要处理多个关键词,我们可以稍作修改,使其能够接受一个关键词列表,并为每个关键词执行搜索。以下是修改后的代码,它可以接受一个关键词列表,并为列表中的每个关键词搜索商品,最后将结果保存到同一个CSV文件中,每个关键词的结果作为CSV文件中的一行。
import requests
from bs4 import BeautifulSoup
import pandas as pd
def search_aliexpress(keyword, num_pages=1):
base_url = "https://www.aliexpress.com/wholesale"
params = {
'SearchText': keyword
}
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win; x) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
}
products = []
for page in range(1, num_pages + 1):
params['page'] = page
response = requests.get(base_url, params=params, headers=headers)
soup = BeautifulSoup(response.content, 'html.parser')
items = soup.find_all('div', class_='item')
for item in items:
title = item.find('a', class_='item-title').text.strip()
price = item.find('span', class_='price-current').text.strip()
link = item.find('a', class_='item-title')['href']
products.append({
'Keyword': keyword,
'Title': title,
'Price': price,
'Link': link
})
return products
def save_to_csv(products, filename='aliexpress_products.csv'):
df = pd.DataFrame(products)
df.to_csv(filename, index=False, mode='a', header=not pd.io.common.file_exists(filename))
print(f"Data saved to {filename}")
if __name__ == "__main__":
keywords = input("Enter keywords separated by comma (e.g., phone, laptop, camera): ").split(',')
num_pages = int(input("Enter the number of pages to scrape for each keyword: "))
for keyword in keywords:
keyword = keyword.strip() # Remove any leading/trailing whitespace
print(f"Searching for keyword: {keyword}")
products = search_aliexpress(keyword, num_pages)
save_to_csv(products)
这样,你就可以用这段代码来处理多个关键词,并把每个关键词的搜索结果保存到同一个CSV文件中,每个关键词的结果作为文件中的一个区块。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- howto234.com 版权所有 湘ICP备2022005869号-3
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务