閒來無事!用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
- 求助 | 天氣預報資料採集,更新入庫的問題!
- 天氣預報apiAPI
- Python 獲取當地未來五天天氣 天氣預報 獲取天氣Python
- flutter天氣預報APPFlutterAPP
- 天氣預報API介面API
- 天氣預報介面收集
- 氣象資料隨時隨地:讓天氣預報API為您的應用提供精準的天氣資訊API
- 中國天氣網免費天氣預報介面APIAPI
- 英國發布智慧雨傘:內建天氣預報資訊
- react native天氣預報React Native
- Flutter實踐:天氣預報Flutter
- Delphi天氣預報查詢
- 天氣預報程式碼大全
- 查詢天氣預報網站網站
- Java呼叫取得天氣預報WebServicesJavaWeb
- 天氣查詢 2月1日:全國未來10天天氣預報查詢
- Android Spinner(級聯 天氣預報)Android
- 5.22 天氣預報系統 小
- 0828-T3 天氣預報
- 天氣預報戰略升級為“新晴天氣”,深耕天氣+出行生活場景
- 天氣預報查詢 API + AI 等於王炸(一大波天氣預報查詢 API 應用場景更新了)APIAI
- 天氣預報API,你想要的它都有API
- 通過iframe呼叫天氣預報&jsonpJSON
- 中央氣象局天氣預報介面---java實現Java
- php,java獲取天氣預報程式碼PHPJava
- 使用和風天氣介面獲取天氣資訊
- m序列的生成--閒來無事寫程式碼
- Mac天氣預報元件:Weather Widget Live for MacMac元件
- 開發chrome外掛入門-天氣預報Chrome
- 實戰CXF呼叫Webxml天氣預報服務WebXML
- 天氣預報更名“新晴天氣”,品牌升級助力智慧生活
- 用python自制微信機器人,定時傳送天氣預報Python機器人
- Python簡單兩步實現天氣爬蟲採集器Python爬蟲
- 請利用SAX編寫程式解析Yahoo的XML格式的天氣預報,獲取天氣預報——python學習筆記XMLPython筆記
- Python爬取天氣資訊並語音播報Python
- 天氣預報查詢 API 提供個性化的天氣服務的設計思路API
- 閒來無事翻譯了 Jetstream、Livewire、Inertia 文件