使用 Python 从 HTML 中提取字符串不适用于正则表达式或 BeautifulSoup
Extracting strings from HTML with Python wont work with regex or BeautifulSoup
我正在使用 Python 2.7、BeautifulSoup4、正则表达式和 windows 7 上的请求。
我从一个网站上抓取了一些代码,但在解析和提取我想要的位并将它们存储在字典中时遇到问题。我所追求的是在代码中显示如下的文本:
@CAD_DTA\">I WANT THIS@G@H@CAD_LBL
我要提取和存储大约 50-60 个短字符串,它们在代码中都是以 @CAD_DTA\">
开头,然后是 @G@H@CAD_LBL
。这些字符串都是可变长度的
我试过:
re.search('@CAD_DTA\">(.+?)@G@H@CAD_LBL',result.text)
其中 result
是 s.post(url, data = cookie, headers = {'referer': my_referer})
的输出
我也试过通过str(result.text)
但 re.search
不断返回 None
。这很奇怪,因为如果我从字面上复制 result.text
的内容并将其粘贴到一个字符串中并通过 re.search
传递它,它就可以正常工作。
我试过使用 re.search('@CAD_DTA">(.+?)@G@H@CAD_LBL',result.text)
以防 \
被视为逃避之类的。我不知道。
有人能给我指出正确的方向吗?
为了将字符串与文字反斜杠相匹配,您需要在原始字符串中对其进行两次转义,例如:
re.search(r'@CAD_DTA\">(.+?)@G@H@CAD_LBL',result.text)
^ ^
为了获取找到的匹配项的索引,您可以使用 start([group])
of re.MatchObject
import re
obj = re.search(r'@CAD_DTA\">(.+?)@G@H@CAD_LBL', 'Some text here...@CAD_DTA\">I WANT THIS@G@H@CAD_LBL')
print obj.start(1)
print obj.group(1)
我正在使用 Python 2.7、BeautifulSoup4、正则表达式和 windows 7 上的请求。
我从一个网站上抓取了一些代码,但在解析和提取我想要的位并将它们存储在字典中时遇到问题。我所追求的是在代码中显示如下的文本:
@CAD_DTA\">I WANT THIS@G@H@CAD_LBL
我要提取和存储大约 50-60 个短字符串,它们在代码中都是以 @CAD_DTA\">
开头,然后是 @G@H@CAD_LBL
。这些字符串都是可变长度的
我试过:
re.search('@CAD_DTA\">(.+?)@G@H@CAD_LBL',result.text)
其中 result
是 s.post(url, data = cookie, headers = {'referer': my_referer})
我也试过通过str(result.text)
但 re.search
不断返回 None
。这很奇怪,因为如果我从字面上复制 result.text
的内容并将其粘贴到一个字符串中并通过 re.search
传递它,它就可以正常工作。
我试过使用 re.search('@CAD_DTA">(.+?)@G@H@CAD_LBL',result.text)
以防 \
被视为逃避之类的。我不知道。
有人能给我指出正确的方向吗?
为了将字符串与文字反斜杠相匹配,您需要在原始字符串中对其进行两次转义,例如:
re.search(r'@CAD_DTA\">(.+?)@G@H@CAD_LBL',result.text)
^ ^
为了获取找到的匹配项的索引,您可以使用 start([group])
of re.MatchObject
import re
obj = re.search(r'@CAD_DTA\">(.+?)@G@H@CAD_LBL', 'Some text here...@CAD_DTA\">I WANT THIS@G@H@CAD_LBL')
print obj.start(1)
print obj.group(1)