閒來無事!用C++採集天氣預報資訊
#include <iostream>
#include <string>
#include <curl/curl.h>
#include <jsoncpp/json/json.h>
using namespace std;
// 定義常量
const char* url = "預報資訊採集"; // 網址
const proxy url = "jshk.com.cn/mb/reg.asp?kefu=xjy&"; // 提取ip地址
const char* proxy_host = "duoip"; // 代理主機
const int proxy_port = 8000; // 代理埠
const char* username = "your_username"; // 代理使用者名稱
const char* password = "your_password"; // 代理密碼
// 定義結構體,用於儲存代理認證資訊
struct proxy_auth {
string user;
string pass;
};
// 定義函式,用於設定代理認證資訊
void set_proxy_auth( CURL * curl, const proxy_auth & auth) {
struct curl_slist * proxy_auths = NULL;
proxy_auths = curl_slist_append( proxy_auths, ( char*) auth. user. c_str());
proxy_auths = curl_slist_append( proxy_auths, ( char*) ":". c_str());
proxy_auths = curl_slist_append( proxy_auths, ( char*) auth. pass. c_str());
proxy_auths = curl_slist_append( proxy_auths, ( char*) ":". c_str());
proxy_auths = curl_slist_append( proxy_auths, ( char*) ":8000". c_str());
curl_easy_setopt( curl, CURLOPT_PROXYAUTH, CURLAUTH_BASIC);
curl_easy_setopt( curl, CURLOPT_PROXY, proxy_host);
curl_easy_setopt( curl, CURLOPT_PROXYPORT, proxy_port);
curl_easy_setopt( curl, CURLOPT_PROXYUSERPWD, proxy_auths);
}
int main() {
proxy_auth auth = { username, password}; // 代理認證資訊
CURL * curl = curl_easy_init(); // 初始化CURL
if( curl) {
set_proxy_auth( curl, auth); // 設定代理認證資訊
curl_easy_setopt( curl, CURLOPT_URL, url); // 設定URL
curl_easy_setopt( curl, CURLOPT_FOLLOWLOCATION, 1); // 跟蹤重定向
curl_easy_setopt( curl, CURLOPT_WRITEFUNCTION, write_data); // 設定回撥函式
curl_easy_setopt( curl, CURLOPT_WRITEDATA, & data); // 設定回撥函式的引數
CURLcode res = curl_easy_perform( curl); // 執行請求
if( res != CURLE_OK) {
cerr << "curl_easy_perform() failed: " << curl_easy_strerror( res) << endl;
}
curl_easy_cleanup( curl); // 關閉CURL
}
return 0;
}
// 定義回撥函式,用於處理請求資料
size_t write_data( void * ptr, size_t size, size_t nmemb, string * data) {
* data += string(( char*) ptr, size * nmemb);
return size * nmemb;
}
程式碼解釋:
1、首先,我們定義了爬蟲需要抓取的網頁的URL。
2、然後,我們定義了代理的主機名和埠號,以及代理的使用者名稱和密碼。
3、接著,我們定義了一個結構體,用於儲存代理認證的資訊。
4、然後,我們定義了一個函式,用於設定代理認證的資訊。
5、在主函式中,我們首先初始化CURL,然後設定代理認證的資訊。
6、接著,我們設定URL,以及是否跟蹤重定向。
7、然後,我們定義了一個回撥函式,用於處理請求資料。
8、最後,我們執行請求,如果請求失敗,我們輸出錯誤資訊,並關閉CURL。
注意:這個程式只是一個簡單的示例,實際的爬蟲程式需要處理更多的細節,比如錯誤處理、重試機制、多執行緒處理等。此外,這個程式也沒有解析網頁的內容,實際的爬蟲程式需要解析網頁的內容,提取有用的資訊。
來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70034537/viewspace-3001366/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Rust採集天氣預報資訊並實時更新資料Rust
- 求助 | 天氣預報資料採集,更新入庫的問題!
- 氣象資料隨時隨地:讓天氣預報API為您的應用提供精準的天氣資訊API
- Python 獲取當地未來五天天氣 天氣預報 獲取天氣Python
- react native天氣預報React Native
- flutter天氣預報APPFlutterAPP
- 天氣預報API介面API
- Flutter實踐:天氣預報Flutter
- Java對接騰訊雲簡訊和阿里雲天氣預報Java阿里
- Android 音視訊採集那些事Android
- 閒來無事,做個風扇玩玩
- 查詢天氣預報網站網站
- 0828-T3 天氣預報
- 5.22 天氣預報系統 小
- 使用和風天氣介面獲取天氣資訊
- 全國天氣預報資訊資料 API 功能簡介與程式碼呼叫實戰視訊API
- 招聘資訊採集
- 剛開工,閒來無事碎碎念
- [TJOI2010] 天氣預報 題解
- 天氣預報戰略升級為“新晴天氣”,深耕天氣+出行生活場景
- 【從零開始學爬蟲】採集全國曆史天氣資料爬蟲
- Python爬取天氣資訊並語音播報Python
- 天氣預報查詢 API + AI 等於王炸(一大波天氣預報查詢 API 應用場景更新了)APIAI
- 閒來無事翻譯了 Jetstream、Livewire、Inertia 文件
- m序列的生成--閒來無事寫程式碼
- Mac天氣預報元件:Weather Widget Live for MacMac元件
- 天氣預報:2020年春節出行指南
- 基於Qt的天氣預報專案QT
- 天氣預報API,你想要的它都有API
- 天氣預報到底有什麼作用?
- 天氣預報更名“新晴天氣”,品牌升級助力智慧生活
- 抖音商家資訊採集器,抖音小店採集 電話採集
- 新晴天氣:2020年天氣應用研究報告
- 從歷史天氣預報 API 看氣象大資料的商業價值API大資料
- 閒來無事,做了個抽紙條的小程式,結果沒人用、、、、、
- 工商資訊資料採集思路
- 用python自制微信機器人,定時傳送天氣預報Python機器人
- 開發chrome外掛入門-天氣預報Chrome