XMPP-电子名片

四个类:

// 电子名片数据存储
XMPPvCardCoreDataStorage
// 电子名片模块
XMPPvCardTempModule
// 电子名片的头像
XMPPvCardAvatarModule
// 电子名片实体
XMPPvCardTemp
// 注册花名册和头像
- (void)connect{

    if (self.xmppStream == nil) {
        // 1.初始化 xmppstream
        self.xmppStream = [[XMPPStream alloc] init];

////////////////////////////////////////////////// 2.添加电子名片模块//////////////////////////////
        // 2.1创建电子名片的数据存储
        self.vCardStorage = [XMPPvCardCoreDataStorage sharedInstance];
        // 2.2根据名片的数据存储创建电子名片模块
        self.vCard = [[XMPPvCardTempModule alloc] initWithvCardStorage:self.vCardStorage];
        // 2.3用 xmppstream 激活名片
        [self.vCard activate:self.xmppStream];

        // 电子名片配和头像模块一起使用
        // 3.添加头像模块
        // 3.1根据电子名片创建头像模块
        self.avatar = [[XMPPvCardAvatarModule alloc] initWithvCardTempModule:self.vCard];
        // 激活头像模块
        [self.avatar activate:self.xmppStream];
////////////////////////////////////////////////////////////////////////////////////////////////////

        // 设置代理,发到子线程中执行
        [self.xmppStream addDelegate:self delegateQueue:dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)];
    }
    // 链接之前要判断是都链接成功,否则会出现用上一次的 jid 重复链接的错误
    if (![self.xmppStream isConnected]) {
        // 设置 xmppstream 的 myJID hostName hostPort 默认的5222可以不用设置
        self.xmppStream.myJID = [XMPPJID jidWithUser:@"zhangsan" domain:@"127.0.0.1" resource:nil];
        self.xmppStream.hostName = @"127.0.0.1";

        // 开始链接
        NSError * error = nil;
        if (![self.xmppStream connectWithTimeout:XMPPStreamTimeoutNone error:&error]) {
            NSLog(@"%@",[error userInfo].description);
        }

    }
}

// 获取名片的信息
XMPPvCardTemp *myvCard = [[AppDelegate alloc] init].vCard.myvCardTemp;

// XMPPvCardTemp类中有很多需要的属性

// 更新电子名片的信息
[[WCXMPPTool sharedWCXMPPTool].vCard updateMyvCardTemp:myVCard];
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,你想问如何使用 Scrapy 框架找到 class='pai-item pai-status-doing' 的 `<li>` 标记内的 `<p>` 里的文字内容为 estate_name;`<em class='pai-xmpp-current-price'>` 的文字内容作为 price,然后将提取的内容输出到 CSV 文件中,对吧? 以下是实现这个功能的示例代码: ```python import scrapy import csv class MySpider(scrapy.Spider): name = 'my_spider' start_urls = ['http://example.com'] def parse(self, response): # 找到 class='pai-item pai-status-doing' 的 <li> 标记 for li in response.css('li.pai-item.pai-status-doing'): # 提取 estate_name 和 price estate_name = li.css('p::text').extract_first() price = li.css('em.pai-xmpp-current-price::text').extract_first() # 将提取的内容输出到 CSV 文件中 with open('data.csv', 'a', encoding='utf-8', newline='') as f: writer = csv.writer(f) writer.writerow([estate_name, price]) ``` 在这个示例中,我们首先使用 CSS 选择器找到 class='pai-item pai-status-doing' 的 `<li>` 标记。然后,我们使用 CSS 选择器提取 `<p>` 标记里的 estate_name 和 `<em>` 标记里的 price。最后,我们将 estate_name 和 price 写入 CSV 文件中。 注意,我们在打开 CSV 文件时使用了 `'a'` 模式,表示以追加模式打开文件。这样做可以保证每次运行 Spider 时,新提取的内容会被写入到 CSV 文件的末尾,而不是覆盖原有的内容。 另外,我们还指定了 CSV 文件的编码为 `'utf-8'`,并设置 `newline=''` 参数来避免写入 CSV 文件时产生空行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值