问题
我正在尝试创建一个ruby脚本,在给定标识符时输出Apple设备的 Generation Name 。
例如:
ruby device_name.rb "iPad3,4"
应输出:
iPad (4th generation)
我需要执行此操作的数据位于此Wiki页面上: https://www.theiphonewiki.com/wiki/Models
不幸的是,桌子很难被刮掉。
在检查了chrome中的元素之后,我在第一个表上取得了一些成功,所以我可以看到css结构。
例如,这将在Apple TV表格中显示标识符:
doc.css("div#content.mw-body div#bodyContent.mw-body-content div#mw-content-text.mw-content-ltr table.wikitable")[0].children[Y].children[11].text
Y从3开始,然后标识符继续奇数,直到没有更多的孩子。
如果标识符与输入到ARGV [0]的标识符相匹配,那么我可以通过以下方式询问生成名称:
doc.css("div#content.mw-body div#bodyContent.mw-body-content div#mw-content-text.mw-content-ltr table.wikitable")[0].children[Y].children[1].text
到目前为止一切顺利,对吧?
然后下一张与Apple Watch相对应的表以及之后的所有其他表混淆了我。这将返回整个下一个表。
doc.css("div#content.mw-body div#bodyContent.mw-body-content div#mw-content-text.mw-content-ltr table.wikitable")[1]
但是,相同的查找只需更改为以下内容即可完成:
doc.css("div#content.mw-body div#bodyContent.mw-body-content div#mw-content-text.mw-content-ltr table.wikitable")[0].children[3].children[11].text
显然应该有一个不同的css路径,因为有更多列,但我不能获得相同的一致性或在其他表中找到一个可靠的模式。
问题
答案 0 :(得分:1)
有点倒退,不一定漂亮,但是,
@api.model
def create(self, vals):
result = super(ResUsersInherit, self).create(vals)
print vals
user = self.env['res.users'].create({'name': vals['name'],'login': vals['work_email']})
result['employee_id'] = user and user.id or False
return result