如何基于函数变量实现for/while循环获取500条搜索URL?
批量获取Google搜索URL的循环实现方案
直接用for循环就能搞定,思路就是分5次请求(500/100=5),每次把start参数设为当前循环次数乘100,再把每次返回的URL列表合并到总列表里。下面是具体代码:
from yagooglesearch import SearchClient # 配置参数 search_query = "你的搜索关键词" # 替换成实际要搜索的内容 per_page = 100 total_target = 500 all_urls = [] # 计算需要循环的次数,这里是5次 loop_times = total_target // per_page for i in range(loop_times): start_index = i * per_page # 初始化搜索客户端,设置起始位置和单次获取数量 client = SearchClient(search_query, start=start_index, num=per_page) # 获取当前批次的URL列表 current_urls = client.search() # 合并到总列表中 all_urls.extend(current_urls) # 提前终止:如果当前批次返回结果不足100条,说明已无更多结果 if len(current_urls) < per_page: break # 确保总数量不超过目标值(避免实际结果多于500条的情况) all_urls = all_urls[:total_target] print(f"总共获取到 {len(all_urls)} 条URL")
关键说明
loop_times通过总目标数除以单次获取数得到,刚好覆盖start=0、100、200、300、400这几个起始位置。- 每次循环用
i * per_page计算start参数,保证每次从下一页开始抓取。 - 加入结果数量判断,一旦某次返回的URL不足100条,直接跳出循环,避免无效请求。
- 最后用切片
[:total_target]确保总列表长度不超过目标值,处理意外超量的情况。
内容的提问来源于stack exchange,提问作者Pren Ven
相关产品推荐
相关产品推荐

