使用Go语言进行网络爬虫开发:实例与技巧
package main
import (
"fmt"
"net/http"
"os"
"time"
)
// 定义HTTP客户端
var httpClient = &http.Client{
Timeout: 10 * time.Second,
}
// 定义网页抓取函数
func fetchPage(url string) (string, error) {
resp, err := httpClient.Get(url)
if err != nil {
return "", err
}
defer resp.Body.Close()
if resp.StatusCode != http.StatusOK {
return "", fmt.Errorf("server returned status code %d", resp.StatusCode)
}
// 假设这里是读取resp.Body的内容并返回
return "page content", nil
}
func main() {
// 假设这里是命令行参数处理的代码
if len(os.Args) != 2 {
fmt.Fprintf(os.Stderr, "Usage: %s <url>\n", os.Args[0])
os.Exit(1)
}
url := os.Args[1]
content, err := fetchPage(url)
if err != nil {
fmt.Fprintf(os.Stderr, "Error fetching page: %v\n", err)
os.Exit(1)
}
fmt.Println(content)
}
这个代码示例展示了如何使用Go语言编写一个简单的网络爬虫。它定义了一个fetchPage
函数,该函数使用http.Client
来发送HTTP GET请求,并处理响应。在main
函数中,它检查命令行参数的数量,并使用fetchPage
函数获取页面内容。如果在获取过程中发生错误,它会将错误信息输出到标准错误并退出程序。
评论已关闭