一般情况下可以这样匹配中文,如图:<img src="https://pic4.zhimg.com/50/edcbd2faf1a916675cec852bd886e599_hd.jpg" data-rawwidth="827" data-rawheight="600" class="origin_image zh-lightbox-thumb" width="827" data-original="https://pic4.zhimg.com/edcbd2faf1a916675cec852bd886e599_r.jpg">
先用靓汤或正则找到这个节点,再用上面的字符组匹配。
假设这个节点只有一个,用法如下:
import reimport requests as reqfrom bs4 import BeautifulSoupurl = 'xxx'html = req.get(url).textbs = BeautifulSoup(html)span = bs.find_all('span', 'pro-title')'''span = re.findall('[^<]+', html)s = span[0]m = re.findall('[一-龥]+', s)'''s = str(span)m = re.findall('[一-龥]+', s)print(m)
正则表达式:开头.*?结束.*?结束|开头.*?结束
因为你给的示例是有换行的,所以正则匹配的时候注意设置单行模式
java 单行模式示例
Pattern pattern = Pattern.compile("开头.*?结束.*?结束|开头.*?结束", Pattern.DOTALL);
因为js没有单行模式,可以使用[\d\D]或[\w\W]或[\s\S]代替.来解决
var reg = /开头[\d\D]*?结束[\d\D]*?结束|开头[\d\D]*?结束/;