php可以抓取网页数据吗(,获取访问的最佳方法是什么?(图) )

优采云 发布时间: 2022-02-20 14:16

  php可以抓取网页数据吗(,获取访问的最佳方法是什么?(图)

)

  例如,这是一个“页面”:

  该页面有一个 RSS 提要(理想情况下我想使用它),但是 a) 它的浏览器嗅探意味着我需要从脚本中伪造用户代理来获取它 - 这感觉非常脆弱 b) 的质量返回的数据真的很糟糕。

  我可以使用图形 api 来获取相同的数据吗?这个网址:

  暗示我可以,json 对我来说很好,尽管我是从 PHP 脚本而不是客户端获取它。但是,当我为我的实际页面尝试该 URL 时,我得到以下信息:

  1{

2 "error": {

3 "type": "OAuthAccessTokenException",

4 "message": "An access token is required to request this resource."

5 }

6}

7

  我不明白为什么我的页面需要访问令牌,而其他页面“更公开” - 这是页面上的一些配置吗?如果不是,那么获取访问密钥的最佳方式是什么 - 请注意,这不是一个需要页面所有者进行身份验证的交互式脚本。

  如果我尝试通过 CURL 访问 URL,它在 PHP 中对我来说很好。

  1$curlResponse = http('https://graph.facebook.com/facebook/feed');

2$facebookFeed = json_decode($curlResponse['data'], true);

3

4var_dump($facebookFeed);

5

  使用这个 PHP 函数:

  1function http($url) {

2 $timeout = 30;

3 $connectTimeout = 30;

4 $sslVerifyPeer = false;

5

6 $response = array();

7 $ci = curl_init();

8

9 /* Curl settings */

10 curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, $connectTimeout);

11 curl_setopt($ci, CURLOPT_TIMEOUT, $timeout);

12 curl_setopt($ci, CURLOPT_RETURNTRANSFER, true);

13 curl_setopt($ci, CURLOPT_HTTPHEADER, array('Expect:'));

14 curl_setopt($ci, CURLOPT_SSL_VERIFYPEER, $sslVerifyPeer);

15 curl_setopt($ci, CURLOPT_URL, $url);

16

17 $response['http_code'] = curl_getinfo($ci, CURLINFO_HTTP_CODE);

18 $response['api_call'] = $url;

19 $response['data'] = curl_exec($ci);

20

21 curl_close ($ci);

22

23 return $response;

24}

25

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线