【问题标题】:how perform web scapring using laravel and the client side如何使用 laravel 和客户端执行网页抓取
【发布时间】:2019-03-29 07:41:37
【问题描述】:

我想在 javascript 或任何其他替代方案中从客户端的 url 获取 html 内容

我曾在 php 中尝试过服务器端,但我试图获取它的网站一直在禁止我的服务器 IP 地址 我已经尝试过它告诉我跨域请求被阻止的ajax方式:我试图允许它但没有任何帮助。 我想在我试图从客户端的网络浏览器获取的网站上传递请求,以免被禁止

这是来自 php 和 ajax 请求的示例

<?php

        curl_setopt_array($curl, array(
    CURLOPT_URL => "https://www.example.com/",
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_ENCODING => "",
            CURLOPT_MAXREDIRS => 10,
            CURLOPT_TIMEOUT => 30,

            CURLOPT_HTTPHEADER => array(
                "accept: application/json, text/javascript, */*; q=0.01",
                "accept-encoding: gzip, deflate, br",
                "accept-language: en-US,en;q=0.8,en;q=0.6",
                "cache-control: no-cache",
                "content-type: application/json; charset=UTF-8",
                "origin: https://www.example.com/",
                "referer: http://www.example.com/",
                "user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36",
                "x-microsoftajax: Delta=true"
            ),
        ));

         curl_exec($curl);


?>

<script type="text/javascript">

    $.ajax({
  url: 'http://www.example.com/',
  dataType: "html",
  success: function(data) {
    // your code to handle data here
  }
});

</script>   

【问题讨论】:

  • 如果他们阻止了你,而你没有授权这样做,很容易被认为是黑客行为,会受到惩罚......
  • 即使你描述的方法不管你怎么尝试都行不通。 CORS 是当您尝试使用 ajax 访问远程网站时,除非您有授权,否则这是不允许的。您还必须使用您的 ip 向网站发出请求,因此无论如何您都会被阻止。最后,老实说,如果我没有闻到这有什么问题,我会提供另一种选择.. 但是我

标签: javascript php node.js laravel


【解决方案1】:

如果您使用 Ajax 向您的服务器发出请求,然后(作为响应)从您的服务器向第三方服务器发出请求:该请求来自您的服务器。

无法代理请求并让它仍然来自运行浏览器的计算机。


与其试图规避第三方对您施加的限制,不如与他们协商。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-23
    • 2021-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-16
    相关资源
    最近更新 更多