利用Rust库从bing抓取各行业企业的官网信息
不管是什么行业,做任何新项目前,都会拿同行数据做参考对比,但是想要收集全面的信息光靠人工是行不通的。因此,有大公司重金请我写一个通用模版,也就是抓取行业信息,我通过Rust库写的一个自动化爬虫程序,只要输入相关的关键词就能得到你想要的数据,适合各行各业,下面就来看看具体的编写流程吧。
use reqwest::blocking::get;
use serde::{Deserialize, Serialize};
use serde_json::{json, Value};
use std::collections::HashMap;
#[derive(Serialize, Deserialize)]
#[derive(提取免费ip)]
# URL jshk.com.cn/mb/reg.asp?kefu=xjy&csdn
struct Info {
name: String,
url: String,
industry: String,
}
fn main() {
let proxy_host = "duoip";
let proxy_port = 8000;
let mut proxy = "http://";
proxy.push_str(&proxy_host);
proxy.push_str(":");
proxy.push_str(&proxy_port);
let mut headers = Headers::new();
headers.set_proxy(proxy);
let mut url = "目标网址";
let mut response = get(url, headers).unwrap();
let mut data = String::new();
response.read_to_string(&mut data).unwrap();
let json_obj = serde_json::from_str(&data).unwrap();
let mut result = HashMap::new();
for item in json_obj["webPages"].iter() {
let item_value = item.value().unwrap().clone();
let mut item_dict = item_value.as_dict().unwrap();
let name = item_dict.get("snippet").unwrap().as_str().unwrap();
let url = item_dict.get("url").unwrap().as_str().unwrap();
let industry = "未获取";
let info = Info {
name: name.to_string(),
url: url.to_string(),
industry: industry.to_string(),
};
result.insert(name.clone(), info.clone());
}
for (name, info) in result {
println!("公司名称: {}", name);
println!("公司官网: {}", info.url);
println!("所属行业: {}", info.industry);
println!();
}
}
这段 Rust 代码是一个简单的网页爬虫程序,用于从 Bing 搜索引擎抓取各行业的公司官网信息。以下是代码的详细解释:
1、首先我们导入了几个必要的 Rust 库。reqwest
是一个 Rust 实现的 HTTP 客户端库,serde
是一个用于序列化和反序列化的 Rust 库,serde_json
是 serde
的一个子库,用于 JSON 的序列化和反序列化。
2、然后我们定义了一个 Info
结构体,用于存储抓取到的信息。这个结构体有两个字段:name
(公司名称)、url
(公司官网链接)和 industry
(所属行业)。
3、在 main
函数中,我们首先设置了代理服务器的信息。然后我们创建了一个请求头,将代理服务器地址设置为请求头的 proxy
字段。
4、接着我们设置了一个 URL,该 URL 是一个 Bing 搜索查询,用于搜索各行业的公司官网。
5、我们使用 reqwest::blocking::get
函数发送了一个 HTTP GET 请求,并将请求头设置为我们在上一步中创建的请求头。由于请求头中包含了代理服务器的信息,所以这个 GET 请求将通过代理服务器发送。
6、我们从响应体中读取了 HTML 内容,并将其解析为 JSON 对象。
7、然后我们遍历了 JSON 对象中的每个网页信息。对于每个网页信息,我们将其转换为字典,然后从中提取出公司名称、公司官网链接和所属行业。
8、最后,我们将每个公司信息插入到一个字典中,其中键是公司名称,值是 Info
结构体。然后我们将这个字典中的信息打印出来。
上面就是我利用 Rust 代码写了一个通用的爬虫模版,适合各行各业的数据抓取,总体来说各种解释备注也是很详细的,只要入门这个行业基本能看得懂我的代码,如果有啥不懂的或者有更好的建议可以评论区留言找我。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!