You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Internshala实习爬虫的Flask API向服务器返回全部抓取数据

Internshala实习数据抓取API

本程序用于抓取实习招聘网站Internshala的相关数据,封装为REST API,以JSON格式向本地服务器返回数据。

注:本程序是完整项目的一部分,可独立运行。

原代码问题分析

原程序运行后仅返回1条实习数据,原因如下:

  • for循环内部直接执行return语句,第一次遍历到第一条数据就直接终止函数运行,不会处理剩余抓取结果
  • 没有定义容器存储所有条目,每次循环都会覆盖上一次的单条数据

修改后的完整代码

import scrapped_intershala
from flask import Flask, jsonify 
import json
import requests
import webbrowser
from bs4 import BeautifulSoup

start_link='https://internshala.com'
# 抓取页面数据
html_text = requests.get('https://internshala.com/internships/game%20development-internship').text
soup = BeautifulSoup(html_text, 'lxml')

app = Flask(__name__)
@app.route('/')
def run():
    company_name = soup.find_all('div', class_="heading_4_5 profile")
    stipend = soup.find_all('span', class_="stipend")
    location = soup.find_all('a', class_="location_link")
    start_date = soup.find_all('div', class_="item_body", id="start-date-first")
    link_to = soup.find_all('div', class_="heading_4_5 profile")

    # 新增空列表存储所有实习信息
    internship_list = []

    for name, sal, loc, Sdate, LK in zip(company_name, stipend, location, start_date, link_to):
        nm = name.text.replace('\n','')
        dt = Sdate.text.replace('\n','').replace('Immediately','').strip()

        answer = {
            'Company name' : nm,
            'Stipend' :  sal.text,
            'Location': loc.text,
            'Date of joining as intern' : dt,
            'For more information link for internship': start_link + LK.a['href']
        }
        # 将单条数据追加到列表
        internship_list.append(answer)
    
    # 循环结束后统一返回所有数据,使用flask自带的jsonify更规范
    return jsonify(internship_list)

if __name__ == '__main__':
    app.run(debug=False, host='0.0.0.0', port=7000)

修改点说明

  • 循环外新增空列表internship_list作为存储所有实习数据的容器
  • 删除循环内的return逻辑,每次循环处理完单条数据后追加到列表中
  • 循环结束后统一返回整个列表,直接使用Flask内置的jsonify方法返回标准JSON格式响应,无需手动处理JSON序列化

内容的提问来源于stack exchange,提问作者Shyamansh Sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 17:36:03