【发布时间】:2021-08-22 18:24:50
【问题描述】:
我正在尝试通过网络抓取此人的姓名和公司。 这是我尝试过的。
<div id="viewcontact">
<table width="100%">
<tbody><tr>
<td style="display: inline-block; width: 30%">
<div class="formsection_light" style="margin-top:-8px;background:#eaeaea;">
<div style="padding-bottom:10px;">
<div class="left">
<h1>Company Name</h1>
<p class="f16">Person's Name</p>
<div class="theme">
Person's Name
</div>
</div>
<div class="right" style="margin-top:5px;">
driver.find_element_by_xpath('//h1[@class="left"]')
driver.find_element_by_class_name("f16")
输出什么都没有,没有错误只是没有刮掉任何东西
【问题讨论】:
-
好的,所以.....发生了什么事?这些函数调用是否返回任何内容?是否有任何错误或追溯?您是否使用 Chrome 的开发者工具来获得完整的 XPath?请edit您的问题并创建一个minimal reproducible example,以便我们可以复制您所看到的行为。这包括给我们一个实际的 URL,或者发布足够的 HTML(以文本形式,而不是作为图像)来测试可能的解决方案。请参阅intro tour 中的on topic 和how to ask。
-
请原谅我的疏忽,这是我第一次访问这个网站。我不确定 Chrome 的开发者工具是什么意思来获取完整的 xpath
-
请谷歌该术语以了解它们是什么以及如何使用它们。有关如何复制完整 XPath 以及较短 XPath 的说明,请参阅 this answer。
-
Matt,我将代码更新为 driver.find_element_by_xpath('/html/body/div[6]/div[3]/div[5]/div[2]/div[2]/ div[3]/div/table/tbody/tr/td[1]/div[1]/div[1]/div[1]/h1') 这是我通过 Chrome 开发人员工具复制时得到的。它输出的代码是
-
试试
print(element.text)。