Python 板


LINE

各位大大晚安,不才想请教两个问题<(_ _)> 我目前希望可以处理一份很巨大的xml,但是我手上的xml档没有树根! 经过测试我发现会报错QAQQQ 我看到别人的解法好像是先把档案开启来,然後写入树根? 但是我目前需要动态迭代,因为档案很大,无法一次存入记忆体, 我试着引用查到的程式码,我的程式目前长如下网址 http://codepad.org/bPqMyuly 感觉好像不适合用那种open然後加入树根的方式,不知道版上大大有好建议嘛? 譬如怎麽跟着迭代动态写入树根? 我的XML格式如下: <doc id="13" url="https:XXX" title="XX"> content 1 </doc> <doc id="15" url="https:XXX" title="XX"> content 2 </doc> 另外想问我希望搜寻文档中xml的content,然後如果我的keyword有出现在content中, 就回报我content的id,让我知道哪些content中有出现我的keyword, 我操作如下 先把xml分析出id和content之後,存入MySQL资料库, 再藉由SELECT id FROM table WHERE content = "%keyword%" 找出哪些文章出现我的关键字 这样子的操作会有问题嘛?譬如MySQL会搜很慢之类的? 如果有问题,我怎样做比较好? p.s我的关键字都是中文 -- 壁河山攻守 争成败悟道 许银川 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.163.141.34
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1526226246.A.D68.html
1F:→ ThxThx: 一行一行读 05/14 01:43
2F:→ ThxThx: 读到close tag 就把累积的内容拿去parse 05/14 01:43
这样听起来,我需要自己用正规表达式判断是不是close tag,不能用现成套件Q 不是很擅长正规表达式的说QAQ
3F:→ s860134: 你的问题应该是在档案太大,写入 sql 很好阿 05/14 12:58
4F:→ s860134: 後来网路上有人提示 etree.HTML 就可已爬没 root 的 05/14 13:07
5F:→ s860134: https://stackoverflow.com/a/23891862 05/14 13:07
6F:→ s860134: 你直接当作 html 爬应该是没什麽差 05/14 13:08
其实我有看到下面写html,但是我试着导入HTML之後,进行迭代依旧出错, 所以在想是不是html版并无迭代功能,当然也可能是我自己用错了>"<
7F:推 subi: http://codepad.org/qw3YwJsx 不知道这样字是不是你要的 05/14 20:35
待我研究一下此版本是否可以迭代运算,不然档案太大会吃不下,要边吃边释放
8F:→ subi: 我觉得你应该搭配 generator 来写,可以避免记忆体问题 05/14 21:11
好,我研究一下,html系列好像真的没有iterparse函式, 有没有其他相应函式我不清楚... 我研究一下generator,刚刚直接执行,电脑差点当掉,还好我即时喊停>"< 不太清楚generator要如何搭配QAQQQ 您给予的程式在我稍做修改,加入正式大量数据时就会造成电脑当机 当在执行soap = BeautifulSoup(file, "lxml") 我猜测再这一步运行时,就会需要将整个档案导入,所以记忆体无法负荷, 而generator好像是在这步之後的步骤? 怪怪的刚刚想贴程式码再测试时结果不一样了,没有当,但是只有输出一笔 然後soap = BeautifulSoup(fn, "lxml") 这边卡了很久 http://codepad.org/iLwM633k # 阿阿,我崩溃了╯-____-)╯~═╩════╩═~ 开了很久,手动加上root结果还是爆了,这不是那麽乾净的xml 直接把档案丢上来好了... 我发现BeautifulSoup在比较小那份可以跑,但是他默默的没有跑完就停了... 之後可能考虑真的一行一行读吧 https://drive.google.com/drive/folders/ 1hWUIROmnJE-GuSxc2079JmRwMF-zbQ9g?usp=sharing 短网址:https://goo.gl/X2seS3
9F:推 subi: http://codepad.org/wFYpWu6s 05/15 20:35
10F:→ subi: 可以参考我上面贴的程式码,档案这麽大我觉得你用 lxml是对的 05/15 20:36
11F:→ subi: 跑一会有 EntityRef: expecting ';', line 2603, column 60 05/15 20:37
12F:→ subi: 这个你就自己解吧 XD 05/15 20:38
有大神远端帮忙解好了,感谢您 <3 秉持互助原则把大神写好的清理程式放上来 perl版 http://codepad.org/7BzB36yW python版 http://codepad.org/FNZmO1pD 希望以後可以帮到更多需要的人^^ (大神如果您觉得不合适可以叫我撤下) ※ 编辑: st1009 (1.163.154.100), 05/16/2018 23:07:09







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:WOW站内搜寻

TOP