如何实现searchBox.send_keys自动切换v.S1、v.S2等变量批量搜索?
解决方案
1. 重构variables.py的变量存储
把分散的S1、S2、S3改成列表,方便批量遍历:
# variables.py SEARCH_TERMS = ["Eggs", "Milk", "Bread"] # 把所有要搜索的词都放在这里
2. 修改functions.py的爬虫函数,让它接受搜索词参数
把原来固定用X的函数改成可传参的形式,每次调用时传入不同的搜索词:
# functions.py from selenium.webdriver.common.by import By def scrape_single_item(search_term): # 这里保留你原有的初始化浏览器、定位元素的代码 # ... searchBox = driver.find_element(By.CLASS_NAME, 你的类名变量) searchBox.send_keys(search_term) # 用传入的参数代替固定的X # 后续抓取品牌、价格的代码保持不变 # ...
3. 在main.py里循环调用函数,实现批量搜索
导入列表后,逐个遍历每个搜索词,调用爬虫函数:
# main.py import variables as v import functions as f # 循环遍历所有搜索词,逐个执行抓取 for term in v.SEARCH_TERMS: f.scrape_single_item(term) # 可选:每次搜索后添加状态重置代码,比如清空搜索框、返回首页,避免影响下一次搜索
额外提示
- 如果非要保留S1、S2、S3的单独变量,可以在variables.py里加个列表聚合它们:
# variables.py S1 = "Eggs" S2 = "Milk" S3 = "Bread" SEARCH_TERMS = [S1, S2, S3] - 每次搜索完成后,记得处理浏览器状态(比如清空搜索框、刷新页面),防止下一次搜索受上一次输入残留的影响。
内容的提问来源于stack exchange,提问作者Manners
相关产品推荐
相关产品推荐

