我想从Upwork job search中刮取所有工作的标题,这些标题存储在如下标记中:
<h4 data-job-title="::$ctrl.job" class="job-title m-xs-top-bottom p-sm-right ng-isolate-scope">
<a data-ng-bindhtml="jsuJobTitleController.job.title|truncateHtmlByWords:jsuJobTitleController.getWordsThreshold()" data-ng-click="jsuJobTitleController.onJobTitleClick($event)" data-ng-href="/jobs/Email-Analytics-Custom_~0150c1eb58019b8306/" class="job-title-link break visited ng-binding" data-ng-class="{'text-muted': jsuJobTitleController.isHidden}" data-itemprop="url" href="/jobs/Email-Analytics-Custom_~0150c1eb58019b8306/">
Email Analytics Custom
</a>
</h4>
我已尝试使用其中一个可能的类:
jobs = driver.find_elements_by_xpath('//h4[@class="job-title"]')
所有课程:
jobs = driver.find_elements_by_xpath("//h4[contains(@class, 'job-title') and contains(@class, 'm-xs-top-bottom') and contains(@class, 'p-sm-right') and contains(@class, 'ng-isolate-scope')]")
但这两种方法都只返回空列表——这很奇怪,因为这表明它正在匹配某些内容?因为如果它不能匹配一个元素,我会预料到一个错误
有谁能为如何实现这一目标提供建议吗
谢谢
看看这是否有帮助:-
首先,您正试图匹配只有一个类名
job-title
的元素,而那里有更多的类名,因此您应该在那里使用contains
。像这样:您可能还必须在加载页面之前添加等待/延迟。
但首先你必须使用正确的定位器
使用以下xpath:
我建议你等一等
如果您想删除所有标题,请执行以下操作:
然后使用以下xpath:
使用
find_elements
将所有elements
存储在列表中相关问题 更多 >
编程相关推荐