例如,假设我正在构建一个应用程序,其中用户根据其UPC代码搜索衬衫。该应用程序的工作是在其他各种零售商处找到这件衬衫。零售商A具有可轻松用于定位产品的API。但是,零售商B没有向开发人员开放的API。
开发人员如何处理零售商B?
我提出的想法是:
以前是否有人遇到过此问题,或者是否有人知道解决此问题的现有技术或方法?我从不了解如果不使用API如何处理数据检索。
答案 0 :(得分:0)
这是我在PHP中使用curl所做的事情。它应该可以帮助您入门。
$url = 'https://newjersey.xxxxxx.net/login';
$cookie="cookie.txt";
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36");
curl_setopt ($ch, CURLOPT_TIMEOUT, 60);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt ($ch, CURLOPT_REFERER, $url);
curl_setopt ($ch, CURLOPT_VERBOSE, true);
$result = curl_exec ($ch);
preg_match('/meta content="([^"]+)" name="csrf-token"/', $result, $matches);
$token = $matches[1];
$creds['authenticity_token'] = $token;
print "login page with token $token\n";
curl_setopt ($ch, CURLOPT_URL, 'https://newjersey.xxxxx.net/auth/identity/callback');
curl_setopt ($ch, CURLOPT_POSTFIELDS, http_build_query($creds));
curl_setopt ($ch, CURLOPT_POST, 1);
$result = curl_exec ($ch);
登录后,您可以使用正则表达式获取所需的数据。