Python爬虫开发无法正常打印输出目标URL问题求助
代码错误排查
你的代码存在3处核心问题,直接导致运行结果不符合预期:
- 字符串变量替换失效:所有包含
{start}占位符的URL字符串前未添加f前缀,f-string语法不生效,{start}始终是普通字符串,不会被替换为对应数字,打印出的URL永远是带占位符的错误格式。 - 程序入口不触发:入口判断语句
if __name__ == ' __main__ ':的匹配字符串前后存在多余空格,Python无法匹配到正确的执行入口,main()函数根本不会运行。 - 死循环逻辑:循环内使用
if True做判断,条件恒成立,永远不会执行break终止循环,程序会无限运行。
修正后测试代码
你可以先用下面的代码验证URL打印效果,确认URL拼接正确后,再放开接口请求的逻辑:
import requests from time import sleep def get_html(url): response = requests.get(url) if not response.ok: print(f"Code: {response.status_code}, url:{url}") return response.text def main(): start = 1 # 可根据实际需求调整最大爬取ID阈值,避免无意义的死循环 max_crawl_id = 100 while start <= max_crawl_id: # 字符串前加f,启用变量自动替换 url = f'https://www.vivo.com/in/support/queryProductInfosByClassifyId?classifyId={start}' print(url) # 测试URL打印阶段可暂时注释请求逻辑,确认无误后再放开 # resp_content = get_html(url) start += 1 sleep(0.3) if __name__ == '__main__': main()
内容的提问来源于stack exchange,提问作者Prathik Thamalla
相关产品推荐
相关产品推荐

