在Python中使用正则表达式解析站点

在Python中使用正则表达式解析站点,python,html-parsing,Python,Html Parsing,我试图使用正则表达式来解析一个站点 blahblahblah <a href="THIS IS WHAT I WANT" title="NOT THIS">I DONT CARE ABOUT THIS EITHER</a> blahblahblah blahblahblah 布拉布拉布拉赫 (其中有很多,我希望所有这些都以某种标记形式出现)。问题是“a href”实际上有两个空格,而不仅仅是一个(有一些是“a href”,其中一个空格我不想检索),因此使用LXM

我试图使用正则表达式来解析一个站点

blahblahblah 
<a  href="THIS IS WHAT I WANT" title="NOT THIS">I DONT CARE ABOUT THIS EITHER</a>
blahblahblah 
blahblahblah
布拉布拉布拉赫
(其中有很多,我希望所有这些都以某种标记形式出现)。问题是“a href”实际上有两个空格,而不仅仅是一个(有一些是“a href”,其中一个空格我不想检索),因此使用LXML被证明是相当痛苦的,我不想使用BeautifulSoup(出于其他原因)。有人知道我该怎么做吗


谢谢

根据所需的健壮性级别,您可以在第一个快照中获取并存储标记,然后在字符串包含“”时将“”替换为“”。这将有效地删除字符串中的任何多个空格


需要注意的是=)

我相信这回答了你的问题。它只是一对正则表达式,将获得所有的href,这些href正好位于开头的“a”标记后面的两个空格

fh = open("index.html", 'r')
rawString = fh.read()   # read entire file to string
fh.close()

temp =  re.findall("<a  href=\".*?\"", rawString) 
if temp:
    for i in range(len(temp)): # process each match
        temp[i] = re.search("\".*?\"", temp[i]).group(0) # remove 'href='
    print temp    
else:
    print "Not found"
fh=open(“index.html”,“r”)
rawString=fh.read()#将整个文件读取为字符串
fh.close()

temp=re.findall(“不要让你对每次有人问你同样的问题时都会给出链接的答案印象深刻。它显然被认为是问答的一页,被很多人半自动引用。 然而,在编程中,就像在日常生活中一样,有问答,也有我们在现实生活中所做的事情。
就个人而言,如果我不认为HTML在ReGEX中可以完全是<强>解析< /强>,我认为HTML的某些部分的限制<强>分析> /强>可以用正则表达式来完成。这是一个实用的观点。 我确实认识到使用regex对网页进行这种分析。有时会出现一些问题,但可以由开发人员管理。regex很快。有一次我测量到Beautiful Soup比regex慢10倍,而
lxml
大约慢50倍。

我比较擅长用正则表达式获取web dat,如果你想得到一些提示,我可以给出一些,我的电子邮件在我的页面上。

可能重复的No这是不同的。从a href中挑出两个空格,而不是一个空格是困难的。我也很满意它非常脆弱,只要它通常做什么我想这样做,即提取出a href,中间有两个空格。从另一个问题的合理角度阅读第一个答案,但你没有回答这个问题。