如何在html中没有显示内容时获取文本区域的内容?

时间:2015-01-07 19:54:24

标签: python lxml python-requests

我在网页上有一个隐藏的文本区域,直到单击一个复选框。它充满了我想要使用的xml。无论如何我能够获得那个HTML。即使在我的浏览器中单击它,文本区域的内容也不会出现在html中。我有办法访问这些数据吗?

<header>View XML</header>
  <section>
    <div class="row">
      <div class="column-left label"></div>
      <div class="column-right xmldraft">
        <textarea id="xmldraft" class="text ui-widget-content ui-corner-all" rows="4" type="text" style="height: 300px;"></textarea>
      </div>
    </div>
  </section>

我将使用以下代码获取文本区域

import requests
from lxml import html

payload = {'pass': 'PASSWORD', 'user': 'USER','submit':'go'}## Log in info

r = requests.get("http://WEBSITE.com/s2/job.php?orderID=ABCDEF&jobID=WXYZ", params=payload) ## Get page

tree = html.fromstring(r.text) ## break down webpage into parseable data

rawdata=tree.xpath(".//*[@id='xmldraft']")  ## Get text area

但是当我尝试以下任何一项时,我都没有得到任何结果

>>>rawdata
[<TextareaElement 10ab55c00 name=None>]
>>>rawdata[0].text
>>>rawdata[0].text_content()
''
>>>rawdata[0].value
''
>>>rawdata[0].tag
'textarea'

编辑:看来填充它的javascript部分写在这里:

function update_XML() {
  var Rserializer = new ONEGEEK.GSerializer();
  var RserializedXML = Rserializer.serialize(website.job, 'MyRequest');
  var serializer = new ONEGEEK.GSerializer();
  var serializedXML = serializer.serialize(website.XMLResult, 'MyResult');
  $('#xmldraft').css("height", 300);
  $('#xmldraft').val(RserializedXML);
  var txt = $("#xmldraft");
  txt.val(txt.val() + "\n\n\n");
  txt.val(txt.val() + serializedXML);
}

GSerializer没有来源,所以上面似乎是在传递数据。

我不确定如何找到更深层的来源,所以我只想使用硒

0 个答案:

没有答案