Latihan perangkak PHP: data merangkak di Twitter

WBOY
Lepaskan: 2023-06-13 13:18:01
asal
2751 orang telah melayarinya

Dalam era digital, media sosial telah menjadi bahagian yang sangat diperlukan dalam kehidupan orang ramai. Twitter adalah salah satu daripadanya, dengan ratusan juta pengguna berkongsi pelbagai maklumat mengenainya setiap hari. Untuk beberapa penyelidikan, analisis, promosi dan keperluan lain, adalah sangat perlu untuk mendapatkan data yang berkaitan di Twitter. Artikel ini akan memperkenalkan cara menggunakan PHP untuk menulis perangkak Twitter yang mudah untuk merangkak beberapa data berkaitan kata kunci dan menyimpannya dalam pangkalan data.

1. Twitter API

Twitter menyediakan antara muka API (Application Programming Interface) rasmi untuk pembangun mendapatkan data yang berkaitan. Untuk menggunakan API Twitter, anda perlu membuat aplikasi (Apl) terlebih dahulu dan mendapatkan parameter aplikasi yang berkaitan, termasuk Kunci Pengguna, Rahsia Pengguna, Token Akses dan Rahsia Token Akses. Kaedah aplikasi khusus tidak akan diterangkan di sini.

2. Pasang Perpustakaan API Twitter

API Twitter secara rasmi menyediakan perpustakaan akses pembangunan (Perpustakaan PHP), yang boleh memudahkan proses penggunaan API Twitter. Dalam artikel ini, kami akan menggunakan perpustakaan ini untuk mendapatkan data Twitter. Terdapat banyak cara untuk memasang pustaka API Twitter Di sini kami memperkenalkan kaedah menggunakan komposer untuk mengurus kebergantungan alat pengurusan untuk PHP, anda boleh memuat turun yang sepadan Pasang pakej pemasangan sistem pengendalian.

2. Gunakan komposer untuk memasang perpustakaan API Twitter

Masukkan arahan berikut dalam tetingkap baris arahan untuk memasang perpustakaan API Twitter dalam direktori projek:

3. Dapatkan data Twitter

composer require abraham/twitteroauth Menggunakan Twitter API untuk merangkak data terbahagi kepada dua langkah: pengesahan dan pertanyaan. Selepas pengesahan selesai, anda boleh menggunakan arahan pertanyaan untuk mendapatkan data Twitter yang ditentukan, seperti yang ditunjukkan di bawah:

require_once('twitteroauth/autoload.php');
use AbrahamTwitterOAuthTwitterOAuth;

$consumerKey = "your_consumer_key";
$consumerSecret = "your_consumer_secret";
$accessToken = "your_access_token";
$accessTokenSecret = "your_access_token_secret";
$connection = new TwitterOAuth($consumerKey, $consumerSecret, $accessToken, $accessTokenSecret);

$tweets = $connection->get("search/tweets", array("q" => "php", "count" => 100));
Salin selepas log masuk

Kod di atas boleh mendapatkan 100 tweet (tweet) terkini yang berkaitan dengan "php" dan menyimpan menghasilkan pembolehubah $tweets.

4. Menghuraikan dan menyimpan data

Selepas mendapatkan data Twitter, anda perlu menghuraikan dan menyimpan data. Contoh ini menggunakan pangkalan data MySQL, dan anda boleh menggunakan sambungan PDO PHP dan pernyataan SQL untuk menyimpan data. Kod khusus adalah seperti berikut:

try{
    $dbh = new PDO('mysql:host=localhost;dbname=your_database_name', 'your_username', 'your_password');
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    $tweetsArray = json_decode(json_encode($tweets), True)['statuses']; // 将 tweets 转换成数组
    
    foreach ($tweetsArray as $tweet) {
        $id = $tweet['id_str'];
        $text = $tweet['text'];
        $created_at = date("Y-m-d H:i:s", strtotime($tweet['created_at']));
        $user = $tweet['user']['screen_name'];  
        
        // 将数据保存到数据库中
        $statement = $dbh->prepare("INSERT INTO tweets (id, text, created_at, user) VALUES (:id, :text, :created_at, :user)");
        $statement->bindParam(':id', $id);
        $statement->bindParam(':text', $text);
        $statement->bindParam(':created_at', $created_at);
        $statement->bindParam(':user', $user);
        $statement->execute();
    }
    
    echo "Data saved successfully!";
} catch (PDOException $e) {
    echo "Error: " . $e->getMessage();
}
Salin selepas log masuk

Kod di atas akan menghuraikan kandungan tatasusunan $tweets dan menyimpan data yang ditentukan dalam tweet jadual pangkalan data.

5. Kod lengkap

require_once('twitteroauth/autoload.php');
use AbrahamTwitterOAuthTwitterOAuth;

$consumerKey = "your_consumer_key";
$consumerSecret = "your_consumer_secret";
$accessToken = "your_access_token";
$accessTokenSecret = "your_access_token_secret";
$connection = new TwitterOAuth($consumerKey, $consumerSecret, $accessToken, $accessTokenSecret);

$tweets = $connection->get("search/tweets", array("q" => "php", "count" => 100));

try{
    $dbh = new PDO('mysql:host=localhost;dbname=your_database_name', 'your_username', 'your_password');
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    $tweetsArray = json_decode(json_encode($tweets), True)['statuses']; // 将 tweets 转换成数组
    
    foreach ($tweetsArray as $tweet) {
        $id = $tweet['id_str'];
        $text = $tweet['text'];
        $created_at = date("Y-m-d H:i:s", strtotime($tweet['created_at']));
        $user = $tweet['user']['screen_name'];  
        
        // 将数据保存到数据库中
        $statement = $dbh->prepare("INSERT INTO tweets (id, text, created_at, user) VALUES (:id, :text, :created_at, :user)");
        $statement->bindParam(':id', $id);
        $statement->bindParam(':text', $text);
        $statement->bindParam(':created_at', $created_at);
        $statement->bindParam(':user', $user);
        $statement->execute();
    }
    
    echo "Data saved successfully!";
} catch (PDOException $e) {
    echo "Error: " . $e->getMessage();
}
Salin selepas log masuk

6 Nota

API Twitter adalah terhad. Permintaan yang terlalu kerap akan menyebabkan API gagal.

Data yang dikembalikan oleh API Twitter adalah dalam format JSON dan perlu dihuraikan menggunakan fungsi json_decode.
  1. Adalah disyorkan untuk menyimpan data Twitter dalam pangkalan data untuk analisis dan pemprosesan seterusnya.
  2. 7. Ringkasan
  3. Artikel ini memperkenalkan cara menggunakan PHP untuk menulis perangkak Twitter yang ringkas dan menyimpan data dalam pangkalan data. Walaupun menggunakan API Twitter boleh memudahkan proses pemerolehan data, anda masih perlu memberi perhatian kepada pengehadan API dan proses penghuraian dan penyimpanan data dalam pembangunan sebenar. Mempelajari dan menguasai kemahiran asas ini boleh menyediakan asas yang baik untuk analisis dan pemprosesan data masa hadapan.

Atas ialah kandungan terperinci Latihan perangkak PHP: data merangkak di Twitter. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!