我正在使用python进行编程,而我正试图抓取一个网站的pagesource。举个例子,我正在尝试提取upc号码。这只是页面的一部分。在upc周围有一堆字母,数字和符号。
myString = someLargeString + '<meta property=og:upc content=02276254215 />' + anotherLargeString
我想我可以使用很多分割来提取它,但我想知道是否有更好的方法。我学习了一些关于使用findall和正则表达式的知识,但我不确定是否可以在这里应用。拆分是最好的方法吗?
非常感谢任何帮助或建议。非常感谢。
答案 0 :(得分:1)
正则表达式可能更好,因为它更快,更易于维护和更易于阅读。 Here's关于正则表达式的一个很好的教程,如果你要长时间解析这些东西,你应该阅读它。
例如,如果您只想找到一个匹配项:
import re
m = re.search('upc content=([0-9]*)', string)
if m:
upc = m.group(1)
print upc
如果您要重复使用正则表达式,那么事先对其进行预编译可能是一个好主意here
答案 1 :(得分:1)
import re
myString = '<meta property=og:upc content=02276254215 />'
print(re.findall(r'upc\s+content=(\d+)',myString))
['02276254215']
答案 2 :(得分:1)
另一种提取大字符串部分的方法,如果你知道字符串是什么,则使用String的find方法:
myString = '<meta property=og:upc content=02276254215 />'
FirstString = "content="
SecondString = " />"
print(myString[myString.find(FirstString)+len(FirstString)+1:
myString.find(SecondString)])
['02276254215']
您可以在FirstString和SecondString之间提取字符串。