php抓取网页数据插入数据库( 2.使用用户代理:如果不添加这些处理的话模拟登录时)
优采云 发布时间: 2021-10-11 00:22php抓取网页数据插入数据库(
2.使用用户代理:如果不添加这些处理的话模拟登录时)
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
2. 使用用户代理:
$UserAgent = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; .NET CLR 3.5.21022; .NET CLR 1.0.3705; .NET CLR 1.1.4322)'; curl_setopt($curl, CURLOPT_USERAGENT, $UserAgent);
注意:如果不添加这些处理,模拟登录是无法成功的。
使用上面的程序模拟登录网站一般是成功的,但实际上还是需要针对模拟登录网站的具体情况具体考虑。例如:有些网站编码不同,所以抓取的页面是乱码,则需要进行编码转换,如: $data = iconv("gb2312", "utf-8",$data ) ;, 将 gbk 编码转换为 utf8 编码。还有一些网站对安全性要求比较高,比如网银,会把验证码放在inline frame里面。这时候需要先抓取inline frame的页面,从中提取验证。验证码地址,然后去抢验证码。还有一些网站 (如网银)即在js代码中提交表单。在提交表单之前,会进行一些处理,比如加密等,所以如果直接提交,是无法登录成功的。提交前必须做类似的处理,但是这种情况下,如果你能知道js代码中进行的具体操作,比如加密,加密算法是什么,你可以和它做同样的处理,然后去提交数据,所以它可以成功。然而,关键点来了。如果你不知道它执行什么操作,比如它被加密了,但是你不知道具体的加密算法,那么你就无法进行同样的操作,也就无法模拟成功。已登录。这方面的典型案例是网上银行,在js代码中提交表单之前使用网银控件处理用户提交的密码和验证码,但是我们不知道它在做什么,因此无法模拟。所以如果你看完这篇文章就觉得可以模拟登录网银,那你就太天真了。人家银行的网站能这么容易被你模拟出来吗?当然,如果能破解网银控制,那就另当别论了。另一方面,为什么我感觉如此深刻?因为我遇到过这个问题。不说的话,说多了会哭的。. . 所以如果你看完这篇文章就觉得可以模拟登录网银,那你就太天真了。人家银行的网站能这么容易被你模拟出来吗?当然,如果能破解网银控制,那就另当别论了。另一方面,为什么我感觉如此深刻?因为我遇到过这个问题。不说的话,说多了会哭的。. . 所以如果你看完这篇文章就认为可以模拟登录网银,那你就太天真了。人家银行的网站能这么容易被你模拟出来吗?当然,如果能破解网银控制,那就另当别论了。另一方面,为什么我感觉如此深刻?因为我遇到过这个问题。不说的话,说多了会哭的。. .
对PHP相关内容感兴趣的读者可以查看本站专题:《php curl使用总结》、《PHP网络编程技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)》用法《总结》、《PHP数据结构与算法教程》、《PHP编程算法总结》、《PHP操作及算子使用总结》、《PHP常用数据库操作技巧总结》
我希望这篇文章能帮助你进行 PHP 编程。
以上就是PHP使用Curl实现模拟登录和数据抓取功能的例子的详细内容。更多详情请关注其他相关html中文网站文章!