如果前一个元素包含匹配的文本(),则选择一个元素的XPath – Python,Scrapy
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如果前一个元素包含匹配的文本(),则选择一个元素的XPath – Python,Scrapy,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1538字,纯文字阅读大概需要3分钟。
内容图文
![如果前一个元素包含匹配的文本(),则选择一个元素的XPath – Python,Scrapy](/upload/InfoBanner/zyjiaocheng/758/0d71ca6784a74457a2149ee4c3aae175.jpg)
如果前面的元素text()与特定条件匹配,我想提取一个元素.例如,
<html>
<div>
<table class="layouttab">
<tbody>
<tr>
<td scope="row" class="srb">General information: </td>
<td>(xxx) yyy-zzzz</td>
</tr>
<tr>
<td scope="row" class="srb">Website: </td>
<td><a href="http://xyz.edu" target="_blank">http://www.xyz.edu</a>
</td>
</tr>
<tr>
<td scope="row" class="srb">Type: </td>
<td>4-year, Private for-profit</td>
</tr>
<tr>
<td scope="row" class="srb">Awards offered: </td>
<td>Less than one year certificate<br>One but less than two years certificate<br>Associate's degree<br>Bachelor's
degree
</td>
</tr>
<tr>
<td scope="row" class="srb">Campus setting: </td>
<td>City: Small</td>
</tr>
<tr>
<td scope="row" class="srb">Related Institutions:</td>
<td><a href="?q=xyz">xyz-New York</a>
(Parent):
<ul>
<li style="list-style:circle">Berkeley College - Westchester Campus</li>
</ul>
</td>
</tr>
</tbody>
</table>
</div>
</html>
现在,如果前一个元素在text()属性中有“Website:”,我想提取URL.
我使用scthon 0.14的python 2.x.我能够使用诸如的单个元素来提取数据
item['Header_Type']= site.select('div/table[@class="layouttab"]/tr[3]/td[2]/text()').extract()
但是如果缺少网站参数并且tr [3]向上移动并且我在网站元素中获得“类型”并且在类型中获得“奖励提供”,则此方法失败.
在xPath中是否有特定的命令,
'div/table[@class="layouttab"]/tr/td[2] {if td[1] has text = "Website"}
提前致谢.
解决方法:
对于python和scrapy,你应该使用以下来选择“Type”字段,
对我来说很棒.
item['Header_Type']= site.select('div[1]/table[@class="layouttab"]/tr/td[contains(text(),"Type")]/following-sibling::td[1]/text()').extract()
内容总结
以上是互联网集市为您收集整理的如果前一个元素包含匹配的文本(),则选择一个元素的XPath – Python,Scrapy全部内容,希望文章能够帮你解决如果前一个元素包含匹配的文本(),则选择一个元素的XPath – Python,Scrapy所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。