重述图像和卷曲+;php

重述图像和卷曲+;php,php,curl,captcha,recaptcha,Php,Curl,Captcha,Recaptcha,未找到id recaptcha_图像,但如果iecho$page将显示网页,甚至令人惊讶的是,recpatcha div(带有图像本身)。Curl不应该为recaptcha加载图像,但是当我试图查找div时,它却不在那里。是否有方法捕获recaptcha映像的url 您需要使用这样的HTML解析器。 这样就行了: $page = $curl->post($baseUrl.'/submit.php', array('url'=>$address,'phase'=>'1','ran

未找到id recaptcha_图像,但如果i
echo$page将显示网页,甚至令人惊讶的是,recpatcha div(带有图像本身)。Curl不应该为recaptcha加载图像,但是当我试图查找div时,它却不在那里。是否有方法捕获recaptcha映像的url

您需要使用这样的HTML解析器。 这样就行了:

$page = $curl->post($baseUrl.'/submit.php', array('url'=>$address,'phase'=>'1','randkey'=>$randKey[0],'id'=>'c_1'));
$exp = explode('recaptcha_image',$page);

您可能希望使用这样的HTML解析器。
这样就行了:

$page = $curl->post($baseUrl.'/submit.php', array('url'=>$address,'phase'=>'1','randkey'=>$randKey[0],'id'=>'c_1'));
$exp = explode('recaptcha_image',$page);


您不应该向其他网站发送垃圾邮件。这是非常糟糕的事情,使整个互联网无法使用。你怎么敢问如何在这里发垃圾邮件,虽然这里的每个人都有自己的网站,不希望它被滥发,但你不知道他们为什么要这样。既然他们昨天还没有创建这个账户,为什么你会立即假设他们不诚实?@Arda Xi:你认为呢?他在为后代保存所有的reCAPTCHA挑战吗?@AlixAxel我不知道。我碰巧总的来说是善意的。他没有要求帮助发送垃圾邮件,所以我不认为他会发送垃圾邮件。你不应该发送其他网站的垃圾邮件。这是非常糟糕的事情,使整个互联网无法使用。你怎么敢问如何在这里发垃圾邮件,虽然这里的每个人都有自己的网站,不希望它被滥发,但你不知道他们为什么要这样。既然他们昨天还没有创建这个账户,为什么你会立即假设他们不诚实?@Arda Xi:你认为呢?他在为后代保存所有的reCAPTCHA挑战吗?@AlixAxel我不知道。我碰巧总的来说是善意的。他没有请求帮助发送垃圾邮件,所以我不认为他会发送垃圾邮件。问题不在于找到正确的div,而在于用curl解析javascript。因为recaptcha使用js加载,所以curl将获得html,而不是js生成的图像。图像将仅在浏览器中显示。我希望你能理解我想解释的内容。谢谢你,我把它标记为一个可接受的答案,因为我几乎做了同样的事情。Curl不解析javascript,因此我不得不使用相同的cookie向api.recaptcha.net发出另一个请求,以便获得相同的图像。最后我设法得到了URL和图片。非常感谢。我不知道是谁给你的答案打上了负面反馈,但这样做是站不住脚的。谢谢你的帮助!不过你不必用饼干。如果你只是简单地接受挑战,我相信它会更精确。也就是说,除非cookie中包含了挑战,在这种情况下,它几乎是一样的。只有钥匙。因此,第1步:使用GET使用唯一键访问URL。它将返回一个带有图像位置的js代码(同样是js代码)。使用POST访问该URL(和相同的cookie,因为我们需要为$page中已有的表单获取完全相同的图像),从这一点开始,事情就相当简单了。到目前为止,我的硬盘上保存了URL+挑战码和jpeg。如果使用curl获取页面,则挑战键不存在。试试看,你会发现curl根本不懂js代码,这就是我在这一行中提到的:
preg\u match(“%challenge\:\”([a-zA-Z0-9-\\]*),%,$page,$matches)
它解析js代码并提取挑战。然后,在它前面加上“,”以形成URL。问题不在于找到正确的div,而在于使用curl解析javascript。因为recaptcha使用js加载,所以curl将获得html,而不是js生成的图像。图像将仅在浏览器中显示。我希望你能理解我想解释的内容。谢谢你,我把它标记为一个可接受的答案,因为我几乎做了同样的事情。Curl不解析javascript,因此我不得不使用相同的cookie向api.recaptcha.net发出另一个请求,以便获得相同的图像。最后我设法得到了URL和图片。非常感谢。我不知道是谁给你的答案打上了负面反馈,但这样做是站不住脚的。谢谢你的帮助!不过你不必用饼干。如果你只是简单地接受挑战,我相信它会更精确。也就是说,除非cookie中包含了挑战,在这种情况下,它几乎是一样的。只有钥匙。因此,第1步:使用GET使用唯一键访问URL。它将返回一个带有图像位置的js代码(同样是js代码)。使用POST访问该URL(和相同的cookie,因为我们需要为$page中已有的表单获取完全相同的图像),从这一点开始,事情就相当简单了。到目前为止,我的硬盘上保存了URL+挑战码和jpeg。如果使用curl获取页面,则挑战键不存在。试试看,你会发现curl根本不懂js代码,这就是我在这一行中提到的:
preg\u match(“%challenge\:\”([a-zA-Z0-9-\\]*),%,$page,$matches)
它解析js代码并提取挑战。然后,在其前面加上“,”以形成URL。