原以为 BS 带正则很王道,但是今天边走神边写码,就是没有办法写出匹配如下标签的正则,感觉应该是我哪里写错了。我把两边的代码复制过,但是没有用。
匹配了以后是想要标签的内容,而不是这个标签,所以还是用 BS4 比较合适。所以比较不好绕过,而且这里绕过了,以后还得碰上,索性就想问个明白。
字很多,其实重点就是两串代码为什么 BS4 无法匹配,正则可以匹配。我的猜测什么的都可以不用管……
想要搜索的标签示例:
<td class="bgwhite t-汉字"> 1</td>
标示汉字的位置,会是随机的一个汉字。
BS4 的正则:
soup.find_all('td', class_=re.compile(r'bgwhite\st-(\w+)+')):
搜索出来为空。
re 模块正则:
result = re.findall(re.compile(r'bgwhite\st-(\w+)+'), str(soup))
能够正确的打出字来。
个人的一些实践:
猜测:
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.