要使用 Scrapy 的 response.xpath() 方法提取指定 XPath 表达式匹配到的所有内链(即 <a> 标签中的链接),您可以使用以下

方法如果您想要提取以 "/" 开头或以特定网址开头的链接,可以使用适当的 XPath 表达式和条件来实现。以下是一个示例:

def parse(self, response):
    # 提取所有包含 class="content-wrapper-post" 的元素
    content_wrapper_posts = response.xpath('//*[@class="content-wrapper-post"]')
    
    # 遍历每个 content-wrapper-post 元素
    for post in content_wrapper_posts:
        # 提取当前元素中的所有内链
        internal_links = post.xpath('.//a[@href and (starts-with(@href, "/") or starts-with(@href, "https://xxx.net/"))]')

        # 遍历每个内链
        for link in internal_links:
            # 提取链接的 href 属性值
            href = link.xpath('@href').get()
            # 处理链接
            yield {
                'link': href
            }



上述代码假设您正在使用 Scrapy 编写一个 Spider,并在 parse 方法中处理响应。response.xpath('//*[@class="content-wrapper-post"]') 用于提取所有包含 class="content-wrapper-post" 的元素,然后遍历每个元素并提取其中的所有带有 href 属性的 <a> 标签,最后提取每个链接的 href 属性值并将其返回。

在上面的示例中,starts-with(@href, "/") or starts-with(@href, "https://xxx.net/") 条件用于限制匹配的链接必须以 "/" 开头或以 "https://xxx.net/" 开头。这样可以保证提取的链接是站内链接或以特定网址开头的链接。您可以根据实际情况调整此条件。

(本文内容根据网络资料整理和来自用户投稿,出于传递更多信息之目的,不代表本站其观点和立场。也不对其真实性、可靠性承担任何法律责任,特此声明!)

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部