比方说,我正在构建一个应用程序,用户根据它的UPC代码搜索衬衫。申请的工作是在其他零售商那里找到那件衬衫。零售商A有一个API,可以很容易地用于定位产品。然而,零售商B没有向开发人员开放的API。
开发人员将如何处理零售商B?
我想出的想法是:
以前有没有人遇到过这种情况,或者是否有人知道现有的技术或方法来解决这个问题?我从未理解过在不使用API的情况下如何处理数据检索。
发布于 2019-07-08 15:16:30
下面是我在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);
一旦登录,您就可以使用regex来获取正在寻找的数据。
https://stackoverflow.com/questions/56896258
复制相似问题