首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模拟用户行为的curl

模拟用户行为的curl
EN

Stack Overflow用户
提问于 2012-07-28 11:06:38
回答 2查看 1.9K关注 0票数 1

一个典型的基于浏览器的用户访问站点(A),然后链接到某个子页面(B),然后是另一个子页面(C),最后查看他们在页面(D)上的活动

我尝试通过curl模拟这些第一步,以便在触发我的脚本时,它与目标域交互,并且用户最终使用(D),而不需要采取中间操作。

我没有太多使用curl的经验,我有一种感觉,当我转到最后一个页面时,我会搞砸一些东西(我显式设置的cookie会被覆盖,等等)。如果我使用Location头,我也会保留在我的脚本的site...but上,而不是真正地在另一个URL上,我甚至肯定会忽略之前的操作。

我从下面得到的是,我最终得到了(D),没有认识到之前命中过(A)(B)(C)

这是我一直在尝试使用的代码,但我不确定我是否遗漏了一些CURLOPT,或者我的方法中是否有更基本的东西。感谢您的指导。

代码语言:javascript
复制
<?php
$item1=990525;
$item2=208208;
$home="http://www.somedomain.com";
$add=$home."/cart/addSkuByButton.do;jsessionid=0000RSqxtdShvtVm0lVAb29p-9N:1659q38ci?ajaxATCRequest=true&sourcePage=&cmd_addCart.button.INDEX[0]=Add%20to%20Cart&trackingCategory=1000000000&entryFormList[0].selected=on&entryFormList[0].sku=";
$toCart="&entryFormList[0].qty=";
$cart=$home."/cart/shoppingCart.do;jsessionid=0000RSqxtdShvtVm0lVAb29p-9N:1659q38ci";

session_start(); //do I need this?
//setup
$c=curl_init();
curl_setopt($c,CURLOPT_RETURNTRANSFER,true);
curl_setopt($c,CURLOPT_COOKIESESSION,true); //should I use this? I've also tried COOKIEFILE without success
curl_setopt($c,CURLOPT_FOLLOWLOCATION, true);
curl_setopt($c,CURLOPT_HEADER, 1);

//set a session ID
curl_setopt($c,CURLOPT_COOKIE, "jsessionid=0000RSqxtdShvtVm0lVAb29p-9N:1659q38ci; path=/; domain=www.somedomain.com");

//visit main domain
curl_setopt($c,CURLOPT_URL, $home);
curl_exec($c);

//programattically visit sub pages
curl_setopt($c,CURLOPT_URL, $add.$item1.$toCart);
curl_exec($c);
curl_setopt($c,CURLOPT_URL, $add.$item2.$toCart);
curl_exec($c);
curl_setopt($c, CURLOPT_RETURNTRANSFER, false);
curl_setopt($c,CURLOPT_HEADER, false);

//actually visit final page
curl_setopt($c,CURLOPT_URL, $cart);
curl_exec($c);
curl_close($c);
?>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-28 11:35:49

curl不会执行任何javascript,我猜这就是你的问题。当基于浏览器的用户访问站点时,该javascript由浏览器javascript解释器执行。curl将简单地返回纯文本源代码。

Does the curl library execute javascript inside pages?

票数 1
EN

Stack Overflow用户

发布于 2012-07-28 11:40:12

要实现用户导航的自动化,我会使用Selenium。它会帮你省去很多麻烦,给你带来很多麻烦,但它是最好的工具。这是假设问题就是@Vaughan提到的。然而,即使不是这样,也有很多其他的事情需要担心,比如cookie和返回头。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11697917

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档