最近做毕业设计需要抓取登陆后页面的信息,搜索了一下发现用curl可以实现该功能。
命令行下直接用curl命令即可(linux命令,在windows下可在gow或cygwin下使用该命令),php可以调用curl库(PHP5.0以上默认开启)。以下用curl命令举例:
第一步:确定需要登陆的页面:打开登陆页面,查看HTML源代码,找到登陆的<form>标签的"action"属性,其值就是所提交的页面。
第二步:确定post消息:
这里有两种方法:
方法一是在登陆页面的HTML源代码中找出所有<input>的"name"属性,并确定提交的值,以“name1=value1&name2=value2...”的方式提交。注意name和value都需要经过urlencode
方法二是使用类似于firefox的headerfox的插件,可以截获HTTP的头信息。尝试登陆一次就能看出表单post提交了哪些值,然后自己声称格式同上的post消息。
第三步:
使用curl进行登陆 其代码格式如下:
curl --data-binary $POSTMSG $URL
其中$POSTMSG第二步生成的post消息,$URL就是第一步确定的登陆提交的页面的完整的URL。
第四步:
获取cookie
第五步:使用cookie访问登陆后的页面
本文介绍如何使用curl命令在命令行下模拟登录网站的过程。通过分析登录页面的HTML源代码及利用浏览器插件来构造POST请求,进而实现自动登录并获取登录后页面的信息。
1184

被折叠的 条评论
为什么被折叠?



