Python 板


LINE

小弟最近在研究xpath,想说跟BeautifulSoup差不多,但是发现了一个问题 以这程式码为例子: http://imgur.com/MmtRkj5 就是当我想要抓取一则回文的内容,原本预计会像这样回应 http://imgur.com/7s9VoNJ 但是当我加上text()的时候,他好像会自动抓取子节点做分段.... 结果就变这样 http://imgur.com/YMEA0Wd 求解QQ... 我要如何让他不会自动分段 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.231.66.36 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1594100569.A.B25.html ※ 编辑: NoneNaMey (36.231.66.36 台湾), 07/07/2020 13:44:12 ※ 编辑: NoneNaMey (36.231.66.36 台湾), 07/07/2020 13:44:35 ※ 编辑: NoneNaMey (36.231.66.36 台湾), 07/07/2020 13:44:54
1F:→ alvinlin: 我觉得大家可能仰赖网路上的资讯了 07/07 23:49
2F:→ alvinlin: 从你的问题来看,我都看不出你现在打算用什麽 07/07 23:50
3F:→ alvinlin: BeautifulSoup里也有xpath的,但你的xpath是用什麽模组 07/07 23:52
4F:→ alvinlin: ? 07/07 23:52
5F:→ alvinlin: Parsel也有xpath也有css。先把你用了什麽,程式写了什麽 07/07 23:53
6F:→ alvinlin: 写清楚吧 07/07 23:53
7F:→ alvinlin: 我估了一下,你可能是用lxml 的 etree 07/07 23:55
8F:→ alvinlin: 但我懒得猜了 07/07 23:56
9F:→ TakiDog: etree很好用 你资讯贴详细一点吧 07/08 01:17
10F:→ NoneNaMey: 抱歉,我是用etree没错。因为想学scrapy 07/08 12:45
11F:→ NoneNaMey: 发现scrapy都是用xpath的语法,之前用bs4都是用find 07/08 12:47
12F:→ NoneNaMey: 这个问题就是我想抓 索引、发文时间以及内文 07/08 12:48
13F:→ NoneNaMey: http://imgur.com/nDR3sDK 07/08 13:03
14F:→ NoneNaMey: 以这篇文为例子,总共只有15楼,我抓这行内码 07/08 13:06
15F:→ NoneNaMey: 出来的结果却变成这样 http://imgur.com/xPr8FMt 07/08 13:08
16F:→ NoneNaMey: #抱歉 上面少给一张 http://imgur.com/Vlt2oTP 07/08 13:10
17F:→ TakiDog: 你想要一个xpath抓一页全部楼层的回覆? 07/08 19:27
没错QQ 而且楼层都要对到
18F:→ alvinlin: 好吧。我大概懂了。但其实没错 07/08 20:12
19F:→ alvinlin: 它中间变空白是因为它有图及其他内容你没处理啊 07/08 20:15
20F:→ alvinlin: https://i.imgur.com/eyVS1QS.jpg 07/08 20:18
21F:→ alvinlin: 参考这个吧 07/08 20:22
22F:→ alvinlin: https://devhints.io/xpath 07/08 20:22
23F:→ alvinlin: 这要再筛选啦,不是用一个筛选器就搞定的。你要再回圈里 07/08 20:36
24F:→ alvinlin: 去判断 07/08 20:36
25F:→ alvinlin: 要再*在回圈里去判断其实状况 07/08 20:38
26F:→ alvinlin: 其*他状况 07/08 20:39
27F:→ alvinlin: 另外,我建议你用Parsel套件。虽然它们可能同样源自於lx 07/08 20:56
28F:→ alvinlin: ml套件。但scrapy官方说也可以用bs4只是「它比较慢」( 07/08 20:56
29F:→ alvinlin: 官方说的)。所以如果习惯bs4倒也不一定非用别的 07/08 20:56
30F:→ alvinlin: 看起来有三种。chain在一起就行了 07/09 00:45
31F:→ alvinlin: https://i.imgur.com/3c7b4dQ.jpg 07/09 00:45
32F:→ alvinlin: https://i.imgur.com/wGfreYa.jpg 07/09 00:47
33F:→ alvinlin: 看起来有三种。chain在一起就行了 07/09 00:47
34F:→ alvinlin: 看起来etree和parsel结果有点不同。 07/09 01:26
35F:→ alvinlin: 你那个应该是把空格strip掉就行了吧 07/09 01:26
我试过strip()和replace掉空白,只是最主要是PO文者有换行,他的list就多一个值,就对不到了 就像这篇 http://imgur.com/8owWR0I 他换了很多行,出来的结果就变这样 http://imgur.com/NrDMGSP
36F:→ alvinlin: https://i.imgur.com/CYs1hUf.jpg 07/09 01:26
37F:→ NoneNaMey: 感谢大大细心的讲解~ 先把那个网站存到最爱XD 07/09 12:25
38F:→ NoneNaMey: 等等来研究看看 07/09 12:25
※ 编辑: NoneNaMey (36.231.93.193 台湾), 07/09/2020 12:45:37 ※ 编辑: NoneNaMey (36.231.93.193 台湾), 07/09/2020 13:24:18 ※ 编辑: NoneNaMey (36.231.93.193 台湾), 07/09/2020 13:48:43 ※ 编辑: NoneNaMey (36.231.93.193 台湾), 07/09/2020 13:49:14
39F:推 Plot3D: Bs4也说能用lxml就用,快10倍 07/09 14:12
40F:→ NoneNaMey: 嗯啊,而且速度上真的比bs4快很多 07/09 14:19
41F:→ alvinlin: 我的是正常的。你用我的code吧。因为parsle是scrapy用的 07/09 15:26
42F:→ alvinlin: ,可以直接对应scrapy的selector小改即可。而且我觉得如 07/09 15:26
43F:→ alvinlin: 果你去看你那个网站回文的html结构,其实它真的是有三种 07/09 15:26
44F:→ alvinlin: 以上不同的结构。 07/09 15:26
45F:→ alvinlin: https://i.imgur.com/kxEjOJA.jpg 07/09 15:26
46F:→ alvinlin: 它没有多很多行啦。就是中间1235楼的内文是空的。你拿我 07/09 15:31
47F:→ alvinlin: 程式去看每个内文就知怎麽回事了。 07/09 15:31
48F:→ alvinlin: Btw,bs4也可以用lxml 07/09 15:31
49F:→ alvinlin: 你的code可能看不出来哪一楼是因为你把它们全混在一起了 07/09 15:34
50F:→ alvinlin: 。你参考我的再去看文章的HTML就应该懂了。这里实在解释 07/09 15:34
51F:→ alvinlin: 不清楚。 07/09 15:34
52F:→ NoneNaMey: 感谢alvinlin大的讲解,我用你的方法是OK的。 07/09 15:46
53F:→ NoneNaMey: 结构上我也有发现不一样,因为发文者换行会多个<div> 07/09 15:47
54F:→ NoneNaMey: 我是卡在我抓c-article那行内码时会自动抓子结点分段, 07/09 15:48
55F:→ NoneNaMey: 导致他list会因此分段,解决办法就是用你用到的 07/09 15:48
56F:→ NoneNaMey: following-sibling 不过我还要了解一下XD 07/09 15:49
57F:→ NoneNaMey: 还有太多我不懂的用法了QQ 只能慢慢学了 07/09 15:50
58F:→ NoneNaMey: 会想用xpath是因为找工作如果会xpath比较不会被嫌(? 07/09 15:52
※ 编辑: NoneNaMey (36.231.93.193 台湾), 07/09/2020 15:54:58
59F:→ NoneNaMey: 我过去是用bs4+lxml解析器,不过速度真的慢xpath语法的 07/09 15:56
60F:→ NoneNaMey: 很多 07/09 15:56
61F:推 alvinlin: Ok.赞喔^^ 07/09 16:21







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灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP