```kotlin
import java.net.URL
import java.net.URLConnection
import java.io.BufferedReader
import java.io.InputStreamReader

fun main() {
    // 设置代理信息
    val proxyHost = "www.duoip.cn"
    val proxyPort = 8000

    // 创建 URL 对象
    val url = URL("http://www.xianyu.com")

    // 创建 URLConnection 对象,并设置代理
    val connection = url.openConnection()
    connection.setProxyHost(proxyHost)
    connection.setProxyPort(proxyPort)

    // 获取连接对象的输入流
    val in = connection.getInputStream()

    // 创建 BufferedReader 对象,用于读取输入流中的内容
    val reader = BufferedReader(InputStreamReader(in))

    // 读取并打印输入流中的内容
    var line: String?
    while (line = reader.readLine()!!) {
        println(line)
    }

    // 关闭输入流和 BufferedReader 对象
    reader.close()
    in.close()
}
```

代码解释:

1. 首先,我们设置了代理信息,包括代理主机名和代理端口号。

2. 然后,我们创建了一个 URL 对象,表示要爬取的网站的 URL。

3. 接着,我们创建了一个 URLConnection 对象,并设置了代理。这一步非常重要,因为如果我们不设置代理,那么我们的爬虫就无法通过代理服务器访问被墙的网站。

4. 然后,我们获取了连接对象的输入流。这个输入流包含了我们要爬取的网站的内容。

5. 接下来,我们创建了一个 BufferedReader 对象,用于读取输入流中的内容。

6. 然后,我们使用 BufferedReader 对象的 readLine 方法读取输入流中的每一行内容,并打印到控制台。

7. 最后,我们关闭了输入流和 BufferedReader 对象。

需要注意的是,这个程序只是一个基本的示例,实际使用时可能需要根据具体的需求进行修改和扩展。例如,你可能需要解析网页的 HTML 代码,提取出感兴趣的信息,或者保存这些信息到文件中。此外,你还需要注意遵守网站的爬虫规则,不要过度爬取,以免被封 IP。
Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐