【发布时间】:2017-09-15 21:39:27
【问题描述】:
我想在画布后面获取电子邮件的文本,但没有找到方法。
我正在尝试以下代码
from selenium import webdriver
driver=webdriver.Chrome()
driver.get('https://thatsthem.com/phone/806-241-6888')
table=driver.find_element_by_css_selector('.row.clearfix.mt15').get_attribute('innerHTML')
当我打印表格时,我看不到画布后面的变量(例如 var p1 = "makaya0";)。当我在浏览器上打开“查看页面源代码”时,可以在源代码中看到它们。我们如何访问这些变量并从中获取文本?
以下是页面来源
<ul class="list-unstyled list-inline record-list">
<li>
<span class="label label-info"> <i class="fa fa-check"></i> Mobile</span>
</li>
<li>
<i class="fa fa-phone" data-toggle="tooltip" title="Phone Number"></i>
<h3>
<span itemprop="telephone">806-241-6889</span>
</h3>
</li>
<li>
<span class="label label-success"><i class="fa fa-check"></i> Valid Email Address</span>
</li>
<li>
<i class="fa fa-envelope" data-toggle="tooltip" title="Email Address"></i>
<canvas id="c59baf787024e2" width="160" height="20" class="email"></canvas>
<script id="t2i">
var p1 = "makaya0";
var p2 = "923@yah";
var p3 = "oo.com";
var c59baf787024e2 = document.getElementById("c59baf787024e2");
var c59baf787024e2_context = c59baf787024e2.getContext("2d");
c59baf787024e2_context.fillStyle = "#353535";
c59baf787024e2_context.font = "98% sans-serif";
c59baf787024e2_context.textBaseline = "bottom";
c59baf787024e2_context.fillText(p1 + p2 + p3, 0, 20);
document.getElementById("t2i").parentElement.removeChild(document.getElementById("t2i"));
</script>
</li>
<li itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
<i class="fa fa-home" data-toggle="tooltip" title="Address"></i>
<a class="no-linky" href="https://thatsthem.com/address/8114-Sherman-Ave-Lubbock-TX-79423">
<span itemprop="streetAddress">8114 Sherman Ave</span>
<br/> <i class="fa-placeholder"></i>
<span itemprop="addressLocality">Lubbock</span>
<span itemprop="addressRegion">TX</span>
<span itemprop="postalCode">79423</span>
</a>
</li>
</ul>
【问题讨论】:
-
那是因为这部分是一个脚本(包含在
-
谢谢。如果有多个 var p1,如何获取所有 var p1?driver.execute_script("return p1;") return last var p1.
-
好吧,我猜你想要什么 id retutn p1+p2+p3
-
如何从 JS 中得到“答案”:canvas.font = '60px Arial'; canvas.strokeText('答案:61655',90,112);在这里我需要返回 'Answer' 即 61655.HOw 怎么做?
标签: javascript python web-scraping automation selenium-chromedriver