除了BS,还有没有类似于jquery这样的库可以实现这样的功能

2012-04-07 22:10:58 +08:00
 kojp
<br>
some text
<br>(这个是没封口的)

杯具的是这个标签。用BS不好获取中间的内容。批量替换成<br>some text</br> 又不太现实,因为还牵扯到其它的地方的br标签
3581 次点击
所在节点    Python
12 条回复
CoX
2012-04-07 22:13:15 +08:00
<br>本来就是单标签,不是闭合的。
CoX
2012-04-07 22:19:28 +08:00
另外解析页面,我觉得lxml挺不错的
ine181x
2012-04-07 22:19:38 +08:00
br本来就是自闭合的
kojp
2012-04-08 11:51:48 +08:00
@CoX

谢谢,我试试这个叫lxml的东西吧。


@ine181x
呃,那基本上就是说用BS来提取br里面的内容是没多希望的喽?(实在是没有其它的正则或者标签能用户了,才想到这个br的)
onedayoneapple
2012-04-08 12:33:36 +08:00
pyquery 用起来和jquery 差不多
kojp
2012-04-08 13:44:38 +08:00
徘徊了好几个库,发现,正则才是王道!

psum=re.compile(r'<br />[\s\S]*<br />')
keakon
2012-04-08 14:13:13 +08:00
@kojp 不是没希望,而是br本身就没内容…写成xhtml也是这样:
<br/>
some text
<br/>
some text不是br的内容
tamamaxox
2012-04-08 15:16:45 +08:00
bs 是什么
guoquan
2012-04-08 15:19:49 +08:00
请考虑用<span></span>把内容抱起来……
sutar
2012-04-08 15:25:53 +08:00
@tamamaxox BeautifulSoup
kojp
2012-04-08 15:46:27 +08:00
@guoquan

pyquery里面也有wrap_all()?呵呵。。
包起来作何解?把第一个<br>换成<span>,第二个换成</br>
对不?

@keakon
原来是这样子的呀!我还手动试过变成<br></br>呢。

另外,奇怪的是psum=re.compile(r'<br />[\s\S]*<br />') 这里我本来还想用\把<给转义的。竟然不需要了。转了的话还会出错。
guoquan
2012-04-08 18:23:46 +08:00
@kojp
写成
<br/>
<span id='foo'>some text</span>
<br/>

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/31629

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX