php的curl扩展抓取信息——模拟登陆成功却无法抓取页面等问题
来源:互联网 发布:怎么删除mac上的文件 编辑:程序博客网 时间:2024/06/01 21:24
最近我编辑了一个程序抓取某平台的用户的新信息并将其以邮件的形式发送。与普通的抓取页面信息不同的是,此程序涉及到了模拟登陆的过程。
技术:php的curl扩展和smtp/mime 发送邮件
难点说明:1.模拟登陆对于cookie的处理是将其存在一个文件中,页面跳转抓取信息时用来当通信证,程序结束时再删除该文件。
$cookie= dirname(__FILE__).'/cookie_inbound.txt'; //文件的绝对路径下建立新文件存储cookie
curl_setopt($curl, CURLOPT_COOKIEJAR,$cookie);
抓取信息时:
curl_setopt($curl, CURLOPT_COOKIEFILE,$cookie); //此语句读取存储cookie的文件信息用来跳转页面抓取信息
但是,当使用此方式时打印页面结果总是说“请重新登陆”,检查模拟登陆结果显示登陆成功。
怀疑是cookie不正确,或者平台虽然给了cookie但是没有存储该cookie。
解决方法:通过浏览器登陆平台,F12查看页面信息。Net -> ALL -> Request Headers -> cookie -> ???
"???"的详细内容为 ???-?????-enable=?; ???_???=???; PHPSESSID=67jfs8ofb5bs234b3a2p4ool94
抓取信息时直接设置cookie:$ckie = "PHPSESSID=".$cookie(提取的id信息)
curl_setopt($curl, CURLOPT_COOKIE,$ckie);
这样就可以任意跳转页面抓取信息了。
2.通过url地址抓取相应的信息,但是此平台使用了ajax异步加载信息。所以无法抓取到有用的信息。
解决方法:F12查看加载页面时有哪些请求,url地址变成相应url请求加cookie,通过模仿请求给js相应的参数得到信息。
3.页面信息抓取得是带有html标签的内容:用到的技术有preg_match_all()和strip_tags()。
匹配所有符合的信息和去掉标签。匹配模式中的“.*?”代表匹配尽可能少的任意字符。
技术:php的curl扩展和smtp/mime 发送邮件
难点说明:1.模拟登陆对于cookie的处理是将其存在一个文件中,页面跳转抓取信息时用来当通信证,程序结束时再删除该文件。
$cookie= dirname(__FILE__).'/cookie_inbound.txt'; //文件的绝对路径下建立新文件存储cookie
curl_setopt($curl, CURLOPT_COOKIEJAR,$cookie);
抓取信息时:
curl_setopt($curl, CURLOPT_COOKIEFILE,$cookie); //此语句读取存储cookie的文件信息用来跳转页面抓取信息
但是,当使用此方式时打印页面结果总是说“请重新登陆”,检查模拟登陆结果显示登陆成功。
怀疑是cookie不正确,或者平台虽然给了cookie但是没有存储该cookie。
解决方法:通过浏览器登陆平台,F12查看页面信息。Net -> ALL -> Request Headers -> cookie -> ???
"???"的详细内容为 ???-?????-enable=?; ???_???=???; PHPSESSID=67jfs8ofb5bs234b3a2p4ool94
抓取信息时直接设置cookie:$ckie = "PHPSESSID=".$cookie(提取的id信息)
curl_setopt($curl, CURLOPT_COOKIE,$ckie);
这样就可以任意跳转页面抓取信息了。
2.通过url地址抓取相应的信息,但是此平台使用了ajax异步加载信息。所以无法抓取到有用的信息。
解决方法:F12查看加载页面时有哪些请求,url地址变成相应url请求加cookie,通过模仿请求给js相应的参数得到信息。
3.页面信息抓取得是带有html标签的内容:用到的技术有preg_match_all()和strip_tags()。
匹配所有符合的信息和去掉标签。匹配模式中的“.*?”代表匹配尽可能少的任意字符。
0 0
- php的curl扩展抓取信息——模拟登陆成功却无法抓取页面等问题
- 【php】curl模拟登录抓取页面信息
- php的curl抓取页面
- 使用curl抓取登陆后的页面
- PHP curl 抓取页面时的 cookie 问题
- php curl函数模拟浏览器抓取网站信息
- 使用PHP curl模拟浏览器抓取网站信息
- php中CURL技术模拟登陆抓取数据实战,抓取某校教务处学生成绩。
- cURL实现模拟登陆+抓取数据
- PHP中CURL技术模拟登陆抓取网站信息,用与微信公众平台成绩查询
- PHP CURL模拟登录抓取数据
- php curl抓取远程页面内容的代码分享
- 网页抓取,模拟登陆,抓取动态网页内容等过程中,所涉及的Headers信息,Cookie信息,POST数据的处理逻辑
- PHP cURL库函数抓取页面内容
- 详解抓取网站,模拟登陆,抓取动态网页的原理和实现(Python,C#等)
- 安卓客户端模拟登陆学校图书馆,并抓取借阅记录等信息,同时实现续借图书的功能。
- curl抓取页面Demo
- 使用curl模拟登陆抓取网页指定内容
- 《Python基础教程(第2版)》学习笔记(二):
- 【Lua】面向对象实现
- CentOS Linux下Java环境的安装和配置 (CentOS+JDK1.6.0_11)
- POJ 2195 && HDU 1533 Going Home(最小费用最大流-mcmf)
- for_each算法函数
- php的curl扩展抓取信息——模拟登陆成功却无法抓取页面等问题
- boundingRectWithSize计算高度不准确
- 史上最详细的Android Studio系列教程四--Gradle基础
- Spell checker(POJ--1035
- uploadify3.2.1+struts2实现多文件上传
- 美团Android自动化之旅—适配渠道包
- BasicResponseHandler
- java集合
- 软工视频——第三章