我又来安利xpath了,放弃正则表达式吧少年。
//span[@class=pro-title]/text()
没人用beautifulsoup?(?).*?(?=如果实际情况中有许多不同的“”对,就请自行填充前后向断言的内容你应该看看汉字编码,网页的编码很可能是gbk,然而python是用的utf8,所以绝对匹配不了
怒答,看到不懂正则的还瞎bb,为你感到悲哀!上图!
---------------代码区----------------# coding:utf-8import rex='apple iphone 5s (a1530) 16gb 金色 移动联通4g手机 'xre=r'()(.+)( )'z=re.search(xre,x).group(2)print z----------输出区-----------------------c:\python27\python.exe d:/pycharmprojects/爬虫/test.pyapple iphone 5s (a1530) 16gb 金色 移动联通4g手机进程已结束,退出代码0
.+ /ssu一般情况下可以这样匹配中文,如图:
先用靓汤或正则找到这个节点,再用上面的字符组匹配。
假设这个节点只有一个,用法如下:
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('[\u4e00-\u9fa5]+', s)'''s = str(span)m = re.findall('[\u4e00-\u9fa5]+', s)print(m)
pyquery 会用jquery的话你会爱上它的换php用 phpquerycss selector
