以下是该页面的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'
答案 0 :(得分:0)
html表示例中的类名是&#34; OfficeTitleLink&#34;并且代码中列出的班级名称为&#34; 官方 TitleLink&#34;这是故意的吗?
您所定位的html片段中不存在您定位的课程。
答案 1 :(得分:0)
<td class="OfficeTitleLink">
@class="OfficialTitleLink"
这是你出错的一件事,嘿嘿。 但不确定其他任何事情。