[问题] xpath的内容问题 求大大解答QQ

楼主: NoneNaMey (NoneNamey)   2020-07-07 13:42:47
小弟最近在研究xpath,想说跟BeautifulSoup差不多,但是发现了一个问题
以这程式码为例子:
http://imgur.com/MmtRkj5
就是当我想要抓取一则回文的内容,原本预计会像这样回应
http://imgur.com/7s9VoNJ
但是当我加上text()的时候,他好像会自动抓取子节点做分段....
结果就变这样
http://imgur.com/YMEA0Wd
求解QQ...
我要如何让他不会自动分段
作者: alvinlin (林矜业)   2020-07-07 23:49:00
我觉得大家可能仰赖网络上的资讯了从你的问题来看,我都看不出你现在打算用什么BeautifulSoup里也有xpath的,但你的xpath是用什么模组?Parsel也有xpath也有css。先把你用了什么,程式写了什么写清楚吧我估了一下,你可能是用lxml 的 etree但我懒得猜了
作者: TakiDog (多奇狗)   2020-07-08 01:17:00
etree很好用 你资讯贴详细一点吧
楼主: NoneNaMey (NoneNamey)   2020-07-08 12:45:00
抱歉,我是用etree没错。因为想学scrapy发现scrapy都是用xpath的语法,之前用bs4都是用find这个问题就是我想抓 索引、发文时间以及内文http://imgur.com/nDR3sDK以这篇文为例子,总共只有15楼,我抓这行内码出来的结果却变成这样 http://imgur.com/xPr8FMt#抱歉 上面少给一张 http://imgur.com/Vlt2oTP
作者: TakiDog (多奇狗)   2020-07-08 19:27:00
你想要一个xpath抓一页全部楼层的回复?
作者: alvinlin (林矜业)   2020-07-08 20:12:00
好吧。我大概懂了。但其实没错它中间变空白是因为它有图及其他内容你没处理啊https://i.imgur.com/eyVS1QS.jpg参考这个吧https://devhints.io/xpath这要再筛选啦,不是用一个筛选器就搞定的。你要再循环里去判断要再*在循环里去判断其实状况其*他状况另外,我建议你用Parsel套件。虽然它们可能同样源自于lxml套件。但scrapy官方说也可以用bs4只是“它比较慢”(官方说的)。所以如果习惯bs4倒也不一定非用别的看起来有三种。chain在一起就行了https://i.imgur.com/3c7b4dQ.jpghttps://i.imgur.com/wGfreYa.jpg看起来有三种。chain在一起就行了看起来etree和parsel结果有点不同。你那个应该是把空格strip掉就行了吧https://i.imgur.com/CYs1hUf.jpg
楼主: NoneNaMey (NoneNamey)   2020-07-09 12:25:00
感谢大大细心的讲解~ 先把那个网站存到最爱XD等等来研究看看
作者: Plot3D (3D做图)   2020-07-09 14:12:00
Bs4也说能用lxml就用,快10倍
楼主: NoneNaMey (NoneNamey)   2020-07-09 14:19:00
嗯啊,而且速度上真的比bs4快很多
作者: alvinlin (林矜业)   2020-07-09 15:26:00
我的是正常的。你用我的code吧。因为parsle是scrapy用的,可以直接对应scrapy的selector小改即可。而且我觉得如果你去看你那个网站回文的html结构,其实它真的是有三种以上不同的结构。https://i.imgur.com/kxEjOJA.jpg它没有多很多行啦。就是中间1235楼的内文是空的。你拿我程式去看每个内文就知怎么回事了。Btw,bs4也可以用lxml你的code可能看不出来哪一楼是因为你把它们全混在一起了。你参考我的再去看文章的HTML就应该懂了。这里实在解释不清楚。
楼主: NoneNaMey (NoneNamey)   2020-07-09 15:46:00
感谢alvinlin大的讲解,我用你的方法是OK的。结构上我也有发现不一样,因为发文者换行会多个<div>我是卡在我抓c-article那行内码时会自动抓子结点分段,导致他list会因此分段,解决办法就是用你用到的following-sibling 不过我还要了解一下XD还有太多我不懂的用法了QQ 只能慢慢学了会想用xpath是因为找工作如果会xpath比较不会被嫌(?我过去是用bs4+lxml解析器,不过速度真的慢xpath语法的很多
作者: alvinlin (林矜业)   2020-07-09 16:21:00
Ok.赞喔^^

Links booklink

Contact Us: admin [ a t ] ucptt.com