Php 需要登录到一个网站之前,刮

Php 需要登录到一个网站之前,刮,php,curl,web-scraping,autologin,Php,Curl,Web Scraping,Autologin,我编写了一个PHP脚本,可以在一个网站(zillow.com)上获取搜索结果。但是,在用户登录到他们的站点之前,站点会隐藏部分结果。当我的scraper运行时,它不会收集任何登录所需的信息。它只对未登录的用户可用的信息进行刮取 我尝试过使用cURL,但没有成功。以下是我到目前为止得到的信息: $username = trim($values["myemail@gmail.com"]); $password = trim($value

我编写了一个PHP脚本,可以在一个网站(zillow.com)上获取搜索结果。但是,在用户登录到他们的站点之前,站点会隐藏部分结果。当我的scraper运行时,它不会收集任何登录所需的信息。它只对未登录的用户可用的信息进行刮取

我尝试过使用cURL,但没有成功。以下是我到目前为止得到的信息:

                $username = trim($values["myemail@gmail.com"]);
                $password = trim($values["mypass123"]);                    

                //login form action url
                $url="http://www.zillow.com/user/account/services/Login.htm"; 
                $postinfo = "email=".$username."&password=".$password;

                $cookie_file_path = "cookie.txt";

                $ch = curl_init();
                curl_setopt($ch, CURLOPT_HEADER, false);
                curl_setopt($ch, CURLOPT_NOBODY, false);
                curl_setopt($ch, CURLOPT_URL, $url);
                curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);

                curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path);
                curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7");
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
                curl_setopt($ch, CURLOPT_REFERER, $_SERVER['REQUEST_URI']);
                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
                curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
                curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
                curl_setopt($ch, CURLOPT_POST, 1);
                curl_setopt($ch, CURLOPT_POSTFIELDS, $postinfo);
                curl_exec($ch);

                //page with the content I want to grab
                curl_setopt($ch, CURLOPT_URL, "http://www.zillow.com/homes/for_sale/Alamance-County-NC/list/fore_lt/pmf,pf_pt/2117_rid/0-125000_price/0-478_mp/1970-_built/priced_sort/36.249851,-79.236667,35.843385,-79.542489_rect/1_p/");

                //do stuff with the info with DomDocument() etc
                $html = curl_exec($ch);

                // Insert scraping code here

                curl_close($ch);
刮取脚本收集页面上的信息,但不是登录用户可用的所有信息

在源代码中,在登录表单标记下,有一个输入标记,其类型为=“hidden”。这是否妨碍自动登录正常工作?如果没有,我需要对代码进行哪些更改才能正常工作


我搜索了几个与此主题相关的线程,并尝试了许多建议的解决方案,以使脚本自动登录,但没有任何成功

只需使用Python-selenium登录,使用lxml获取数据

希望您在那里阅读TOS并获得许可,否则您同意不复制、修改、分发、显示或提供访问、创建衍生作品、反编译、,拆解或逆向工程服务的任何部分。下一句话似乎表明,只要提供了来源,就允许进行刮取:“尽管有上述规定,但Zillow本地信息页面上提供的聚合级数据,可在……研究/,(“聚合数据”)上获得可用于非个人用途,例如房地产市场分析。只要引用齐洛作为来源,您可以显示和分发聚合数据的衍生作品(例如,在图表中)。“无论如何,我对齐洛的使用条款摘要不感兴趣。我最终用Python实现了这个功能。@Steve你用PHP实现过吗?我需要类似的东西lately@Arif不,不是用PHP。然而,我使用Python得到了我想要的东西。具体来说,mechanize和beautiful soup的包被成功地用于抓取网站。我很确定我们正在寻找一个php解决方案。