python - 使用 Python 从 HTML 中提取字符串不适用于正则表达式或 BeautifulSoup

标签 python regex parsing beautifulsoup python-requests

我在 Windows 7 上使用 Python 2.7、BeautifulSoup4、正则表达式和 requests。

我从网站上抓取了一些代码,但在解析和提取我想要的位并将它们存储在字典中时遇到问题。我所追求的是代码中显示的文本:

@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)

其中results.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)
          ^          ^

为了获取找到的匹配项的索引,您可以使用 re.MatchObjectstart([group])

IDEONE demo :

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 - 使用 Python 从 HTML 中提取字符串不适用于正则表达式或 BeautifulSoup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30985493/

相关文章:

python - 从 WARC.gz 文件中提取 header

python - 是否可以在 sqlalchemy 中使用 ResultProxy 对象读取多个结果集?

python - append(self) 在 Python 类中是什么意思?

javascript - 使用下划线递归探索对象并转换字段类型

javascript - 如何使用 javascript 解析文本文件

python - pytz 和 python-dateutil 有什么区别?

javascript - 从输入字符串中获取包含字符及其 ANSI 颜色的数组

c# - 欧洲验证表达式

python - 在 Python 中解析 CSV 101

ios - 使用 JSON 数据滚动问题 TableView