【发布时间】:2018-05-18 11:56:00
【问题描述】:
我正在尝试从 www.dotabuff.com 检索数据以获取 Steam ID 列表,但我只能得到“我们找不到您要找的东西!”的回报。
目标是访问网站,用他的 Steam ID 搜索玩家并提取他的胜率。
(这适用于非常小的列表,不会打扰dotabuff)。
这是我的代码(带有静态 Steam ID 的示例):
//create array of data to be posted
$post_data['utf8'] = '✓';
$post_data['q'] = '76561198055615656';
$post_data['commit'] = 'Search';
//traverse array and prepare data for posting (key1=value1)
foreach ( $post_data as $key => $value) {
$post_items[] = $key . '=' . $value;
}
//create the final string to be posted using implode()
$post_string = implode ('&', $post_items);
//create cURL connection
$curl_connection =
curl_init('https://www.dotabuff.com//');
//set options
curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($curl_connection, CURLOPT_USERAGENT,
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, 1);
//set data to be posted
curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $post_string);
//perform our request
$result = curl_exec($curl_connection);
echo $result;
//close the connection
curl_close($curl_connection);
【问题讨论】:
-
这是您要抓取的实际页面还是 API?发布页面或 API 文档。
-
快速搜索recommends using Valve's official Dota2 match history API,而不是废弃一个随机页面(很可能针对 TOS)。