如何简单使用程序爬取数据

111 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第26天,点击查看活动详情

什么是爬虫

爬虫(也称为网络爬虫、网页蜘蛛、蜘蛛程序、Web 蜘蛛)是一种用于自动抓取网页内容的计算机程序。爬虫通常会自动地浏览多个网页,提取有用的信息,并存储在数据库中。爬虫的功能主要用于数据挖掘、网页索引和网页搜索等领域。
目前很多编程序言都可以有这方面的应用:python、go、c等等,下面是利用go和python分别 爬取某个网站上所有图片的 URL 地址

【Python 爬取数据】

import requests
from bs4 import BeautifulSoup

# 定义要爬取的网站地址
url = "https://www.example.com"

# 发送 HTTP 请求,获取网页内容
response = requests.get(url)

# 使用 BeautifulSoup 解析网页内容
soup = BeautifulSoup(response.text, "html.parser")

# 查找所有 img 标签
img_tags = soup.find_all("img")

# 遍历 img 标签列表
for img_tag in img_tags:
    # 获取 img 标签的 src 属性值
    img_url = img_tag["src"]
    # 打印图片 URL 地址
    print(img_url)

上面的代码首先使用 requests 库发送 HTTP 请求,获取网页内容,然后使用 BeautifulSoup 解析网页内容。接着,它使用 find_all 方法查找所有 img 标签,并遍历 img 标签列表,获取每个 img 标签的 src 属性值,即图片的 URL 地址。最后,它会把所有图片的 URL 地址打印出来。

【Go语言】

package main

import (
    "fmt"
    "io/ioutil"
    "net/http"
    "golang.org/x/net/html"
)

func main() {
    // 定义要爬取的网站地址
    url := "https://www.example.com"

    // 发送 HTTP 请求,获取网页内容
    response, err := http.Get(url)
    if err != nil {
        panic(err)
    }
    defer response.Body.Close()

    // 读取响应内容
    data, err := ioutil.ReadAll(response.Body)
    if err != nil {
        panic(err)
    }

    // 使用 html 包解析网页内容
    doc, err := html.Parse(bytes.NewReader(data))
    if err != nil {
        panic(err)
    }

    // 定义一个函数,用于处理网页中的每个节点
    var f func(*html.Node)
    f = func(n *html.Node) {
        if n.Type == html.ElementNode && n.Data == "img" {
            // 查找 img 标签
            for _, a := range n.Attr {
                if a.Key == "src" {
                // 获取 img 标签
                    }
                }
            }
        }
   }             

注意

这只是一个简单的例子,实际的爬虫代码可能会更加复杂,需要根据实际的爬取任务来定制。例如,您可以在爬取过程中使用代理服务器,避免被网站封锁;您还可以使用多线程或多进程来提高爬取效率。