Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

scraping data from truecaller

I have 200K phone number and i want to get there city using truecaller , how to do that ? as you know truecaller has a restriction per requests ,,

somebody do this here : https://www.phphive.info/324/truecaller-api/

this is mycode :

 $cookieFile = dirname(__file__) . DIRECTORY_SEPARATOR . 'cookies';
    $no = $users[0];
    $url = "https://www.truecaller.com/api/search?type=4&countryCode=sd&q=" . $no;
    $ch = curl_init();
    $header = array();
    $header[] = 'Content-length: 0';
    $header[] = 'Content-type: application/json';
    $header[] = 'Authorization: Bearer i03~CNORR-VIOJ2k~Hua_GBt73sKJJmO';
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookieFile);

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    $data = curl_exec($ch);
    $error = curl_error($ch);
    curl_close($ch);
    $data = json_decode($data, true);
    $name = $data['data'][0]['name'];
    $altname = $data['data'][0]['altName'];
    $gender = $data['data'][0]['gender'];
    $about = $data['data'][0]['about'];
like image 302
ABDALRAHMAN MOLOOD Avatar asked Dec 30 '17 10:12

ABDALRAHMAN MOLOOD


1 Answers

try my npm package truecallerjs

https://www.npmjs.com/package/truecallerjs

const truecallerjs = require('truecallerjs');

var countryCode = "IN"; // Default country code to use.
var installationId = "YOUR INSTALLATION ID";
var phoneNumbers = "+919912345678,+14051234567,+919987654321....." // Phone numbers seperated by comma's

const searchResult = truecallerjs.bulkSearch(phoneNumbers,countryCode,installationId)
searchResult.then(function (response) {
    for (let i = 0; i < response.data.length; i++) {
        if("undefined" === typeof response.data[i].value.addresses[0].city ) {
            console.log(`${response.data[i].key} => Unkown city`);
        } else {
            console.log(`${response.data[i].key} => `,response.data[i].value.addresses[0].city);
        }
    }
})

// OUTPUT
// +919912345678 =>  Andhra Pradesh
// +14051234567 => Unkown city
// +919987654321 =>  Mumbai
// ...
// ...

like image 180
Emmadi Sumith Kumar Avatar answered Oct 30 '22 21:10

Emmadi Sumith Kumar