尝试在Python中使用scrapy来刮取下表

2024-04-26 03:47:13 发布

您现在位置:Python中文网/ 问答频道 /正文

以下是页面的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文档并在ScrapyShell中做了更好的测试之后,发现问题出在我的选择器上。正确的选择器是:

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

Tags: exampleresponsetable选择器页面itemselecttr
2条回答

html表示例中的类名是“OfficeTitleLink”,代码中列出的类名是“OfficialTitleLink”,这是故意的吗?你知道吗

目标类在共享的html代码段中不存在。你知道吗

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

你错了一件事,呵呵。 不过,我不确定还有什么。你知道吗

相关问题 更多 >