开启掘金成长之旅!这是我参与「掘金日新计划 · 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 标签
}
}
}
}
}
注意
这只是一个简单的例子,实际的爬虫代码可能会更加复杂,需要根据实际的爬取任务来定制。例如,您可以在爬取过程中使用代理服务器,避免被网站封锁;您还可以使用多线程或多进程来提高爬取效率。