社区
基础编程
帖子详情
我想通过web程序登录一个网站,然后获取里面页面的数据,可以么?谢谢!
iStringTheory
2004-08-25 09:17:06
具体是这样的:
登 录
我的程序-------->第三方web网站(需要用户名、密码登录)------>获取目标网站内部页面的数据
这整个过程都是通过程序完成的,请问能否可行?谢谢!
...全文
611
42
打赏
收藏
我想通过web程序登录一个网站,然后获取里面页面的数据,可以么?谢谢!
具体是这样的: 登 录 我的程序-------->第三方web网站(需要用户名、密码登录)------>获取目标网站内部页面的数据 这整个过程都是通过程序完成的,请问能否可行?谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
42 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yangzixp
2004-09-04
打赏
举报
回复
要获取session name很容易。随便在网上down一个HTTP监控软件,监控一次你正常登陆该站的过程就可以了。
iStringTheory
2004-08-28
打赏
举报
回复
谢谢~~~
piner
2004-08-27
打赏
举报
回复
以前写的一个class,可以根据自己的需要做调试
piner
2004-08-27
打赏
举报
回复
<?php
class curl
{
var $ch = 0;
var $time = 3; //尝试判断URL正确性次数
var $urlRight = false; //URL是否正确
var $content; //官方返回信息
var $errMsg = ""; //返回的错误信息
// 构造函数
function curl()
{
$this->init();
}
// 初始化curl
function init()
{
$this->ch = curl_init();
}
// configure protocol
function get_Protocol($prot)
{
$protocolArr = explode(":", $prot);
$protocol = strtolower($protocolArr[0]);
return $protocol;
}
// 设置次数
function setTimes($times) {
$this->time = ($times > 0) ? $times : $this->time;
}
// 获取页面
function getPage($url, $header = 0) {
if (! $this->ch)
{
$this->errMsg = "初始化对象失败!";
return;
}
if ($this->checkURL($url) != 1)
{
$this->errMsg = "无效的URL路径!";
return;
}
curl_setopt($this->ch, CURLOPT_URL, $url);
curl_setopt($this->ch, CURLOPT_POST, 1);
if ($this->get_Protocol($url) == 'https')
{
curl_setopt($this->ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($this->ch, CURLOPT_SSL_VERIFYPEER, FALSE);
}
if($header) {
curl_setopt($this->ch, CURLOPT_VERBOSE, 1);
curl_setopt($this->ch, CURLOPT_HEADER, 1);
}
else {
curl_setopt($this->ch, CURLOPT_VERBOSE, 0);
curl_setopt($this->ch, CURLOPT_HEADER, 0);
}
curl_setopt($this->ch, CURLOPT_COOKIEJAR, "-");
curl_setopt($this->ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($this->ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($this->ch, CURLOPT_TIMEOUT, 180);
return curl_exec($this->ch);
}
// 登录
function login($url, $fields, $refererURL=null)
{
if (! $this->ch)
{
$this->errMsg = "初始化对象失败!";
return;
}
/*
if ($this->checkURL($url) != 1)
{
$this->errMsg = "无效的URL路径!";
return;
}
*/
if( $refererURL )
{
curl_setopt($this->ch, CURLOPT_REFERER, $refererURL);
}
curl_setopt($this->ch, CURLOPT_URL, $url);
curl_setopt($this->ch, CURLOPT_POST, 1);
if ($this->get_Protocol($url) == 'https')
{
curl_setopt($this->ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($this->ch, CURLOPT_SSL_VERIFYPEER, FALSE);
}
curl_setopt($this->ch, CURLOPT_COOKIEJAR, "-");
curl_setopt($this->ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($this->ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($this->ch, CURLOPT_POSTFIELDS, $fields);
curl_setopt($this->ch, CURLOPT_TIMEOUT, 180);
$this-> content = curl_exec($this->ch);
// return $content;
}
// 退出
function logout($url, $referer_url=null)
{
if (! $this->ch)
{
$this->errMsg = "初始化对象失败!";
return;
}
if( $referer_url )
{
curl_setopt($this->ch, CURLOPT_REFERER, $referer_url);
}
curl_setopt($this->ch, CURLOPT_URL, $url);
curl_setopt($this->ch, CURLOPT_POST, 1);
if ($this->get_Protocol($url) == 'https')
{
curl_setopt($this->ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($this->ch, CURLOPT_SSL_VERIFYPEER, FALSE);
}
curl_setopt($this->ch, CURLOPT_COOKIEJAR, "-");
curl_setopt($this->ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($this->ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($this->ch, CURLOPT_TIMEOUT, 180);
$this-> content = curl_exec($this->ch);
// return $content;
}
function getContent()
{
return $this->content; // 官方返回的HTML
}
// close curl
function close()
{
if ($this->ch)
{
curl_close($this->ch);
}
}
}
$curl = new curl;
$url = "http://www.test.com/login.php"; //form 的action
$fields = "username=test&password=test"; //用户名和密码
$curl-> login($url, $fields);
$content = getContent();
echo $content;
?>
iStringTheory
2004-08-27
打赏
举报
回复
自己顶~
surfchen
2004-08-26
打赏
举报
回复
OCR不一定准确的说。。呵呵
fire214
2004-08-26
打赏
举报
回复
对于 如输入验证码的功能,也可以利用模拟键盘来解决,让计算机自己切换到,如清华紫光图像识别就可以把相应的数字、符号提取出来,一切你自己需要操作的,模拟键盘都可以做到,只要自己有一套规矩就好了!
fire214
2004-08-26
打赏
举报
回复
关于这个问题,我研究了很长时间,无非就是让自己获取对方网站的信息,我也考虑了很多种办法,但是由于显示出来的方式不同,有的数据是静态的,有的数据是动态的,有的是数据库里的,弄得乱七八糟,最后我选用了用delphi采取模拟键盘的方法,最愚蠢的 ctrl+a +c +v 的方式先把对方的数据资料都调进我自己的数据库里,发现这个办法虽然笨,但是却无敌,也许你可以参照,目的达到了就好,其余的事情让计算机来做!
surfchen
2004-08-26
打赏
举报
回复
同意 Debian(乌鱼子)。。。。
zairwolfi
2004-08-26
打赏
举报
回复
验证码作为一个图片,不能通过程序分析象素得到它的数字么?我估计应该可以。
BiedySun
2004-08-26
打赏
举报
回复
主要是验证码问题。其实的都好说。
楼主的这个意思。其实极像网易通行证这样的东西来着。
你用HIDDEN来完成。
虚拟一次登陆,至于他用SESSION和COOKIE都无所谓的。因为服务器接到你虚拟信息后,会以为你已经成功进入 。
难点在于 abigfrog(千年精灵)(★JAVA★) 提出的难证码~!!!!
yzs1013
2004-08-26
打赏
举报
回复
用了session或指定了判断访问器类型的文件就无法通过其他方式能正常下载,socket或者curl都不例外
unixdotnet
2004-08-26
打赏
举报
回复
费话啦必须通过界面验证的东西不可能直接pass
yzs1013
2004-08-26
打赏
举报
回复
to liyujie2000(开心的鱼)
可能你漏了http://
<%
$fn=fopen("http://www.sohu.com","r");
$nr=fread($fn,500);
fclose($fn);
preg_match("/<title>(.*)<\/title>/",$nr,$nn);
echo $nn[1];
%>
结果:搜狐首页(我这里访问正常)
Debian
2004-08-26
打赏
举报
回复
拜托,你们都有没有头脑。
如果对方在服务器端应用了如输入验证码的功能,用什么都没戏。
iStringTheory
2004-08-26
打赏
举报
回复
curl怎么应对session验证?
iStringTheory
2004-08-26
打赏
举报
回复
好的,谢谢~
iStringTheory
2004-08-26
打赏
举报
回复
yangzixp(扬子.net):
可否告知什么软件获取网站的session name?是否只需一次获取?还是别的什么?
unixdotnet
2004-08-26
打赏
举报
回复
通过socket或者curl都可以
unixdotnet
2004-08-26
打赏
举报
回复
如果用户浏览器打开了cookie,那么session的传递是通过cookie的,所以你可以臆造,格式参照http协议,内容就像用flashget下载文件时程序里面的提示内容,以前phpx.com也讨论,可以去搜索看看.
加载更多回复(22)
GD32VW553使用IIC读取MLX90614温度传感器并把数值显示在oled上
一、硬件 在快速发展的物联网与智能设备时代,RISC-V作为一种先进的开源指令集架构,正逐步成 为业界的焦点。 中电港萤火工场推出基于兆易创新(GigaDevice)GD32VW553——一款RISC-V内核的32 位MCU的开源硬件板GD32VW553-IOT-V2。该板集成了主控芯片卓越的无线连接能力(集成Wi-Fi 6 与BLE5.2)、强大的性能与能效比以及丰富的外设接口,可享受到开源社区带来的丰富资源 和便利,极大地方便了开发者的快速部署和应用创新。 全新的设计针对旧款的开发痛点进行了系统性优化: Type-C口升级:集成串口功能,简化调试与
程序
下载流程,提升开发便捷性 新增开关:增设用户可自定义按键及指示灯,拓展交互控制与状态显示功能 板面布局优化:背面增加引脚丝印,正面仅保留关键器件丝印,布局清晰及信息聚焦 FLASH焊接位:移至背面,减少焊接风险,增加开源二次开发的灵活性 BOOT开关优化:升级为拔码式设计,简化操作逻辑,提升切换效率 稳固性增强:板厚增至1mm,提升了整体结构强度与抗变形能力 联合兆易创新打造GD32无线生态专区,整合产品动态、开源分享、方案应用、资料下载等,iceasy 二、MLX90614温度传感器 MLX90614 是一款集成红外热电堆传感器和信号处理芯片的非接触式温度计。它采用了先进的红外感应技术,可以对目标物体进行高精度和高分辨率的温度测量,适用于各种工业、汽车等应用。 特性和优点 MLX90614 具有以下主要特性和优点: 高精度和高分辨率:由于集成了低噪声放大器、17 位模数转换器和强大的数字信号处理单元,使得温度计具备高精度和高分辨率1。 宽温度范围:环境温度范围为 -40℃ 至 125℃,物体温度范围为 -70℃ 至 382.2℃1。 低功耗:功耗仅为 1mA 左右,适合于电池供电的场合2
【核心期刊复现】计及需求响应的区域综合能源系统双层优化调度策略研究(Matlab代码实现)
【核心期刊复现】计及需求响应的区域综合能源系统双层优化调度策略研究(Matlab代码实现)
Adobe Acrobat Reader DC Font Pack (FontPack1500720033-XtdAlf-Lan)
代码下载地址: https://pan.quark.cn/s/1f200bf4f8af Adobe Acrobat Reader DC Font Pack 作为
一个
特定的字体集合,是专门为 Adobe Acrobat Reader 应用
程序
设计的,它能够添加更多的亚洲语言字体(Extended Asian Language font pack)。这一资源的主要目的是为了处理亚洲地区(尤其是中文)的字体在 Adobe Reader 软件中无法正确显示的情况。该资源的官方标识名称为:FontPack1500720033_XtdAlf_Lang_DC.msi。为了完成安装过程,用户只需执行双击该文件的操作即可直接进行安装。
【无人机协同】基于matlab动态环境下多无人机系统的协同路径规划与防撞(Matlab代码实现)
【无人机协同】基于matlab动态环境下多无人机系统的协同路径规划与防撞(Matlab代码实现)
移动号码库-下载即用.zip
源码链接: https://pan.quark.cn/s/1470f27e49f3 标题“移动号码库”所标识的是
一个
汇集了中国各地移动通信公司手机号码信息的资源,这些信息可用于
数据
分析、市场推广或电信行业研究等领域。描述中提及“依据中国地区移动电话编码”,这表明
数据
库内的号码是依照中国的电话区号分配制度进行排列的,中国的手机号码一般由11位数字构成,其中前三位象征运营商(例如中国移动的139、138等,中国联通的130、131等),随后的数字则代表用户所在地的区号。在所提供的压缩文件中:1. **手机号码归属地采集.exe**:这是
一个
可执行文件,或许是一种用于成批
获取
或查询手机号码归属信息的工具。通过键入手机号码,该
程序
能够输出该号码所属的省、市以及运营商的详情,从而使用户能够辨识号码的来源。2. **Data.mdb**:这代表
一个
Microsoft Access的
数据
库文件,极有可能包含了移动号码库的关键
数据
。Access
数据
库能够高效地管理和整理大量结构化的
数据
,诸如手机号码、区号、城市详情等。用户可以通过设定特定的查询来检索或分析这些
数据
。3. **MSCOMCTL.OCX**:这是
一个
ActiveX组件,频繁应用于早期的Windows软件中,提供各类用户界面组件。在此情境下,它可能是手机号码归属地采集
程序
的一部分,用于优化
程序
的界面功能,比如列表视图或表格控件,用于展示和操作手机号码
数据
。4. **Count.txt**:这是
一个
文本文档,通常用来记录特定的统计信息,如
数据
库中的手机号码总数、不同地区号码的分布状况等。用户可以通过查阅这个文档迅速掌握号码库的大致容量。综合上述内容,我们可以推断这个压缩文件是
一个
用于处理和分析中国移动电话号码
数据
的...
基础编程
21,891
社区成员
140,342
社区内容
发帖
与我相关
我的任务
基础编程
从PHP安装配置,PHP入门,PHP基础到PHP应用
复制链接
扫一扫
分享
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章