2024-08-20



import org.apache.spark.{SparkConf, SparkContext}
 
object WordCount {
  def main(args: Array[String]): Unit = {
    // 初始化Spark配置
    val conf = new SparkConf().setAppName("WordCount").setMaster("local")
    // 创建Spark上下文
    val sc = new SparkContext(conf)
 
    // 读取输入文件
    val input = args(0)
    // 读取文件内容并分割成单词
    val words = sc.textFile(input).flatMap(_.split("\\s+"))
    // 将单词映射为(word, 1)对并进行统计
    val wordCounts = words.map((_, 1)).reduceByKey(_ + _)
    // 将结果保存到输出文件
    val output = args(1)
    wordCounts.saveAsTextFile(output)
 
    // 停止Spark上下文
    sc.stop()
  }
}

这段代码使用Spark的Scala API实现了一个简单的词频统计程序。它读取一个文本文件,并统计每个单词出现的次数,然后将结果保存到另一个文件中。这个例子展示了如何在Spark中使用Scala进行基本的数据处理操作。

2024-08-20



// 引入axios库
import axios from 'axios';
 
// 创建axios实例,并配置基础URL
const instance = axios.create({
  baseURL: 'https://api.example.com'
});
 
// 发送请求并处理响应
instance.get('/endpoint', {
  params: { // 请求参数
    key1: 'value1',
    key2: 'value2'
  }
})
.then(response => {
  // 请求成功处理
  console.log('Response:', response.data);
})
.catch(error => {
  // 请求失败处理
  console.error('Error:', error);
});

这段代码展示了如何使用axios库创建一个实例并设置基础URL,然后发送一个GET请求到指定的接口,并附带查询参数。成功获取响应后,它会在控制台输出响应数据,如果请求失败,它会输出错误信息。这是学习如何使用axios进行基本的HTTP请求的一个很好的起点。

2024-08-20

要爬取头条热榜数据,通常需要分析网页请求,找到数据加载的Ajax接口,并模拟请求获取数据。以下是一个使用Python和requests库的示例代码:




import requests
import json
 
# 热榜接口URL
url = 'https://www.toutiao.com/api/article/topics/?offset=0&format=json&keyword=%E9%A2%98%E8%A7%86%E9%A2%98&autoload=true&count=15&cur_tab=1&from=timeline_hot'
 
# 设置请求头,模拟浏览器访问
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3',
    'Referer': 'https://www.toutiao.com/hotwords/'
}
 
# 发送请求
response = requests.get(url, headers=headers)
 
# 确保请求成功
if response.status_code == 200:
    # 解析JSON数据
    data = json.loads(response.text)
    print(data)
    # 进一步处理数据,例如存储或分析
 
else:
    print('请求失败')

注意:

  1. 请求头中的User-Agent和Referer应根据实际情况设置,以模拟真实的浏览器请求。
  2. 热榜数据的URL可能会随时间变化,需要根据实际情况进行调整。
  3. 该代码只是一个简单的示例,实际应用中可能需要处理更多的反爬策略,例如需要处理Cookies、Session、代理、登录等。
2024-08-20



// 使用jQuery发送Ajax请求并获取响应头信息
$.ajax({
    url: 'https://example.com', // 替换为你想请求的URL
    type: 'HEAD', // 发送HEAD请求以获取响应头信息
    success: function(data, textStatus, request) {
        // 请求成功后的回调函数
        var contentType = request.getResponseHeader('Content-Type');
        console.log('Content-Type:', contentType);
        // 你可以在这里获取到其他想要的响应头信息
    },
    error: function(xhr, textStatus, errorThrown) {
        // 请求失败后的回调函数
        console.error('Error:', textStatus);
    }
});

这段代码使用jQuery的$.ajax()方法发送一个HEAD请求到指定的URL。成功获取响应后,它会通过getResponseHeader()函数获取Content-Type响应头,并在控制台中打印出来。如果请求失败,它会在控制台中打印错误信息。

2024-08-20

在Flask后端设置跨域访问的响应头,可以通过CORS来实现。首先,需要安装Flask-CORS扩展。




pip install flask-cors

然后,在Flask应用中配置CORS。




from flask import Flask
from flask_cors import CORS
 
app = Flask(__name__)
CORS(app, resources=r'/*')
 
@app.route('/')
def index():
    return "Hello, cross-origin-world!"
 
if __name__ == '__main__':
    app.run(debug=True)

在这个例子中,我们使用了CORS(app, resources=r'/*')来允许所有的跨域请求。在实际部署时,可以更加具体地指定允许跨域的资源路径或来源。

在Ajax页面中,你可以使用jQuery发送Ajax请求,并在成功获取响应后执行相应的操作。




<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Cross-Origin Example</title>
    <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
</head>
<body>
    <div id="content"></div>
    <script>
        $(document).ready(function() {
            $.ajax({
                url: 'http://localhost:5000/',
                type: 'GET',
                success: function(response) {
                    $('#content').append('<p>' + response + '</p>');
                }
            });
        });
    </script>
</body>
</html>

在这个例子中,我们使用jQuery的$.ajax方法向http://localhost:5000/发送GET请求,并在成功获取响应后将其追加到页面的<div id="content"></div>元素中。

请注意,Ajax页面和Flask应用需要运行在不同的端口上,以便跨域请求生效。

2024-08-20



// 使用jQuery实现AJAX的GET请求
$.ajax({
    url: 'https://api.example.com/data', // 请求的URL
    method: 'GET', // 请求方法
    dataType: 'json', // 预期服务器返回的数据类型
    success: function(response) {
        // 请求成功时的回调函数
        console.log(response);
    },
    error: function(xhr, status, error) {
        // 请求失败时的回调函数
        console.error(error);
    }
});
 
// 使用jQuery实现AJAX的POST请求
$.ajax({
    url: 'https://api.example.com/data', // 请求的URL
    method: 'POST', // 请求方法
    data: {
        key1: 'value1',
        key2: 'value2'
    },
    dataType: 'json', // 预期服务器返回的数据类型
    success: function(response) {
        // 请求成功时的回调函数
        console.log(response);
    },
    error: function(xhr, status, error) {
        // 请求失败时的回调函数
        console.error(error);
    }
});

这段代码展示了如何使用jQuery的$.ajax方法来发送GET和POST请求。在GET请求中,我们从服务器获取JSON数据,并在成功获取数据时在控制台中打印出来。在POST请求中,我们发送一些数据到服务器,并同样在成功时打印服务器返回的数据,如果有错误,则在控制台中输出错误信息。

2024-08-20



// 使用Fetch API发送GET请求
fetch('https://api.example.com/data', {
  method: 'GET',
  headers: {
    'Content-Type': 'application/json'
  }
})
.then(response => {
  if (response.ok) {
    return response.json(); // 解析JSON数据
  }
  throw new Error('Network response was not ok.');
})
.then(data => {
  console.log('获取到的数据:', data);
})
.catch(error => {
  console.error('请求失败:', error);
});
 
// 使用Fetch API发送POST请求
fetch('https://api.example.com/data', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({ key: 'value' }) // 发送的数据
})
.then(response => {
  if (response.ok) {
    return response.json(); // 解析JSON数据
  }
  throw new Error('Network response was not ok.');
})
.then(data => {
  console.log('服务器响应:', data);
})
.catch(error => {
  console.error('请求失败:', error);
});

这个代码示例展示了如何使用Fetch API发送GET和POST请求,并在请求成功或失败时进行处理。这是目前推荐的前端数据请求方式,因为它更加灵活和强大。

2024-08-20

使用jQuery AJAX上传文件,你可以通过FormData对象和$.ajax方法来实现。以下是一个简单的实例代码:

HTML部分:




<form id="fileUploadForm" enctype="multipart/form-data">
    <input type="file" id="fileInput" name="file" />
    <input type="button" id="uploadButton" value="Upload" />
</form>

JavaScript部分(使用jQuery):




$(document).ready(function() {
    $('#uploadButton').click(function() {
        var formData = new FormData();
        var fileInput = $('#fileInput')[0];
        var file = fileInput.files[0];
        formData.append('file', file);
 
        $.ajax({
            url: 'your-upload-script-url', // 替换为你的上传脚本URL
            type: 'POST',
            data: formData,
            contentType: false, // 防止jQuery修改contentType
            processData: false, // 防止jQuery处理data成字符串
            success: function(response) {
                console.log('File uploaded successfully:', response);
            },
            error: function(xhr, status, error) {
                console.error('Error uploading file:', status, error);
            }
        });
    });
});

确保你的服务器端脚本配置正确,以接收上传的文件。例如,在PHP中,你可能会使用如下代码来处理上传:




<?php
if ($_FILES['file']['error'] === UPLOAD_ERR_OK) {
    $tmpName = $_FILES['file']['tmp_name'];
    $name = $_FILES['file']['name'];
    move_uploaded_file($tmpName, "/path/to/your/uploads/$name");
    echo "File uploaded successfully";
} else {
    echo "Error uploading file";
}
?>

请确保服务器端的上传文件夹有写权限,并适当配置上传文件大小限制。

2024-08-20



from pyspark.sql import SparkSession
from pyspark.mllib.fpm import FPGrowth
 
# 初始化Spark会话
spark = SparkSession.builder.appName("PysparkAssociationRules").getOrCreate()
 
# 读取数据集
data = spark.read.format("libsvm").load("data/retail/retail.txt")
 
# 使用FPGrowth算法发现频繁项集
fpg = FPGrowth(itemsCol="items", minSupport=0.2, numPartitions=10)
model = fpg.fit(data)
 
# 查看频繁项集的规则
for rule in model.associationRules.collect():
    print(rule)
 
# 停止Spark会话
spark.stop()

这段代码演示了如何使用PySpark的FPGrowth算法来发现频繁项集,并输出关联规则。首先,它初始化了一个Spark会话,然后读取数据集,接着使用FPGrowth算法训练模型,并遍历模型中的关联规则打印出来。最后,它停止了Spark会话。这个案例对于学习如何在实践中使用关联规则模型是很有帮助的。

2024-08-20

Axios 是一个基于 promise 的 HTTP 库,它在浏览器和 node.js 中都可以使用。以下是如何使用 Axios 发送 GET 和 POST 请求的基本示例:




// 引入 Axios
const axios = require('axios');
 
// 发送 GET 请求
axios.get('https://api.example.com/data')
  .then(response => {
    console.log(response.data); // 处理响应数据
  })
  .catch(error => {
    console.error(error); // 处理错误情况
  });
 
// 发送 POST 请求
axios.post('https://api.example.com/data', {
  key1: 'value1',
  key2: 'value2'
})
  .then(response => {
    console.log(response.data); // 处理响应数据
  })
  .catch(error => {
    console.error(error); // 处理错误情况
  });

在这个例子中,我们首先引入了 Axios。然后,我们使用 axios.get() 方法发送了一个 GET 请求,并在 then 方法中处理了响应数据,在 catch 方法中处理了可能发生的错误。对于 POST 请求,我们使用 axios.post() 方法,并传入了请求的 URL 和要发送的数据。同样地,我们也在 then 方法中处理了响应数据,在 catch 方法中处理了可能发生的错误。