我一直在为抓取那个问题的工作特定问题制作xml模板。我使用xpath来制作模板但是在可运行的时间爬虫正在运行而没有给出错误但没有列出作业
例如:Sopra技术的模板(编码中提供的网址)
<?xml version="1.0" encoding="UTF-8"?>
<site>
<request-type>link</request-type>
<base-url><![CDATA[http://www.in.sopragroup.com/index.htm]]></base-url>
<start-url><![CDATA[http://www.in.sopragroup.com/careers/JobListing.aspx]]>
</start-url>
<data>
<intermediate>
<navigation-request>
<navigation-type>link</navigation-type>
<url>
<xpath></xpath>
<sub-xpath></sub-xpath>
</url>
</navigation-request>
<xpath><![CDATA[//table[@class='bg_lgrey']/tbody/tr[position>2]]></xpath>
<apply-url>
<sub-xpath><![CDATA[td/@href]]></sub-xpath>
</apply-url>
<title>
<sub-xpath><![CDATA[td/a/text()]]></sub-xpath>
</title>
</intermediate>
<detail>
<xpath><![CDATA[//table[@id='tbl']/tbody]]></xpath>
<experience>
<sub-xpath><![CDATA[tr[8]/td[2]/text()]]></sub-xpath>
</experience>
<location>
<sub-xpath><![CDATA[tr[10]/td[2]/text()]]></sub-xpath>
</location>
<description>
<sub-xpath><![CDATA[tr[2]/td[2]/text()]]></sub-xpath>
</description>
</detail>
</data>
</site>
答案 0 :(得分:1)
//table[@class='bg_lgrey']/tbody/tr[position>2]
这是代码中的问题之一。仅当tr
元素具有名为position
的子项时,此类Xpath表达式才有可能选择某些内容,该子项的字符串值可以转换为值大于2的数字。
你想要:
//table[@class='bg_lgrey']/tbody/tr[position() >2]
第二个问题:
字符串"bg_lgrey"
根本不存在于两个网址指向的网页源中。