javascript - python+selenium 爬网页数据,function里面的数据怎么返回呢?

查看:143
本文介绍了javascript - python+selenium 爬网页数据,function里面的数据怎么返回呢?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

比如网页http://tjcredit.gov.cn/platform/saic/viewBase.ftl?entId=00011f7153ee8a1e4f8e48eb44ce2954
我要获取登记信息。在源代码里面是这样的:

</div>
        </div>
        <script type="text/javascript" src="../../static/js/jquery-1.8.3.min.js"></script>
        <script type="text/javascript">
            $(function(){
                $('#fenlei li').eq(0).click(function(){
                                         $(this).parent().children().removeClass();
                    $(this).addClass('on');
                    
                    var gsdjlx = "16";
                    if(parseInt(gsdjlx,10)>=19){
                        $("#topNav").html("<li class='on'>登记信息</li>");
                        $("#contentMain").load("/platform/saic/baseInfo.do",{entId:"00011f7153ee8a1e4f8e48eb44ce2954",entType:"16"});
                        return false;
                    }
                    
                    $.ajax({
                        url:"/platform/saic/topInfoClass.json?departmentId=scjgw&entId=00011f7153ee8a1e4f8e48eb44ce2954",
                        dataType:'json',
                        success : function(data){
                            var $topNav= $("#topNav");
                            var dom = [];
                            for(var i = 0;i < data.length;i++){
                                var d = data[i];
                                dom.push('<li url="'+d.url+'" isDefault="'+d.isDefault+'">'+ d.name +'</li>');
                            }
                            $topNav.html(dom.join('')).children().click(function(){
                                $(this).parent().children().removeClass();
                                $(this).addClass('on');
                                var url = $(this).attr('url');

                                loadContent(url);


                            }).filter('[isDefault="1"]').click();
                        }
                    })
                })
    $('#fenlei li').eq(0).click();        
            
})


            function loadContent(url){
                $.ajax({
                    url :url,
                    type:'get',
                    dataType:'html',
                    success : function(data){
                        if(data == ""){
                            data = '<div class="no-message"></div>';
                        }
                        $("#contentMain").html(data);
                    }
                });
            }
            

我用selenium到这个网页,不知道怎么才能获取?求解。

#coding=utf-8
import sys
from selenium import webdriver
from selenium.webdriver.common.proxy import *
import time
reload(sys)
sys.setdefaultencoding('utf-8')

urlindex="http://tjcredit.gov.cn/platform/saic/index.ftl"
browser=webdriver.Firefox()
browser.get(urlindex)
time.sleep(2)

browser.find_element_by_id("queryName1").clear()
browser.find_element_by_id("queryName1").send_keys("120103600211318")
browser.find_element_by_xpath('//input[@class="submit" and @type="button"]').click()
print "captcha is :  "
captcha=raw_input()

browser.find_element_by_id("vcode").send_keys(captcha)
browser.find_element_by_xpath('//input[@value="查询" and @type="submit"]').submit()

time.sleep(2)
browser.find_element_by_xpath('//span[@class="company-name"]').click()
browser.find_element_by_xpath('//li[]') ###########这里不知道怎么办了


time.sleep(2)
browser.quit()

解决方案

要获取到登记信息,只需要用到 GET 参数中的 entId,带上这个参数请求这个 url 就行了,这些都不用去网页里找,直接先在浏览器控制台的网络面板的 XHR 请求里就能看到:

http://tjcredit.gov.cn/platform/saic/baseInfo.json?departmentId=scjgw&infoClassId=dj&entId=00011f7153ee8a1e4f8e48eb44ce2954

这篇关于javascript - python+selenium 爬网页数据,function里面的数据怎么返回呢?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆