尝试使用Python中的scrapy来扫描下表

时间:2014-12-03 21:20:32

标签: python scrapy

以下是该页面的HTML源代码:

<td><table>
      <tr>
        <td class="OfficeTitleLink"><a href="mailto:example@example.ca">John Doe </a> </td>
        <td class="OfficeContent">Example (Example)</td>
      </tr>

我正在尝试确定解析器的结构应该是什么样的,我认为我需要选择与“OfficeTitleLink”相关联的文本;我正在尝试提取电子邮件地址和相关信息。这就是我所拥有的:

def parse(self, response):
    hxs = HtmlXPathSelector(response)
    titles = hxs.select('//table[table[@class="OfficeTitleLink"]/td')
    for titles in titles: 
        item = example_crawler
        item ["title"] = titles.select(".//text()").extract()
        item.append(item)
    return items

我在这里弄错了什么?

- 编辑 -

好吧,在回过Xpath文档并在scrapy shell中进行更好的测试后,结果证明问题是我的选择器。正确的选择器是:

'//tr/td[@class="OfficeTitleLink"]/a/@href'

2 个答案:

答案 0 :(得分:0)

html表示例中的类名是&#34; OfficeTitleLink&#34;并且代码中列出的班级名称为&#34; 官方 TitleLink&#34;这是故意的吗?

您所定位的html片段中不存在您定位的课程。

答案 1 :(得分:0)

<td class="OfficeTitleLink">
   @class="OfficialTitleLink"

这是你出错的一件事,嘿嘿。 但不确定其他任何事情。