Python 使用re.sub从urllib筛选html响应

Python 使用re.sub从urllib筛选html响应,python,python-3.x,urllib,Python,Python 3.x,Urllib,我尝试的是将网站的html响应作为变量字符串,并过滤掉除点(.)、数字(0-9)、冒号(:)之外的所有内容。我似乎无法用re.sub解决这个问题。可能吗 import urllib.request import re ans = True while ans: print(""" - Menu Selection - 1. Automatic 2. Automatic w/Checker 3. Manual 4. Add

我尝试的是将网站的html响应作为变量字符串,并过滤掉除点(.)、数字(0-9)、冒号(:)之外的所有内容。我似乎无法用re.sub解决这个问题。可能吗

import urllib.request
import re

ans = True

while ans:
    print("""
      - Menu Selection -
      1. Automatic 
      2. Automatic w/Checker
      3. Manual
      4. Add to list
      5. Exit
      """)
ans = input('Select Option : ')

 if ans =="1":
    try :
        with urllib.request.urlopen('http://www.mywebsite.net') as response: 
           html = response.read()
           html = str(html)
           html = re.sub(r'([a-z][A-Z])', '', html)
           f = open('text.txt','a')
           f.write(html)
           f.close()
           print('Data(1) saved.')
           ans = True
    except :
            print('Error on first fetch.')    
这将输出整个html代码,并且不会过滤掉任何字符。
非常感谢您的帮助:)

我们需要
html=re.sub('[0-9:]','',html)
。字符串在Python中是不可变的,因此修改字符串的唯一方法是构造一个新字符串:因此所有字符串函数都返回新字符串,而不是就地修改它们(这在Python中是不可能的)。必须将此新字符串分配给某个变量,否则它将永远丢失(如您的示例中所示)。

我们需要
html=re.sub('[0-9:]','',html)
。字符串在Python中是不可变的,因此修改字符串的唯一方法是构造一个新字符串:因此所有字符串函数都返回新字符串,而不是就地修改它们(这在Python中是不可能的)。这个新字符串必须分配给某个变量,否则它将永远丢失(如您的示例中所示)。

您必须排除您提到的三件事,并按如下方式创建模式-此处html是您的输入字符串

re.sub('[^0-9\.:]', '', html)

您必须排除您提到的三件事,并按如下方式创建模式-这里html是您的输入字符串

re.sub('[^0-9\.:]', '', html)

请考虑粘贴代码才能运行程序,是否尝试过过滤字符的方法?输入了整个代码。我尝试过HTML = Re.Sub(R’([AZ] [AZ]),'',HTML”,但这仍然不起作用。请考虑粘贴代码来运行程序,是否尝试过过滤字符?输入了整个代码。我尝试使用html=re.sub(r'([a-z][a-z]),'',html),但仍然不起作用。谢谢您的更正。但是我仍然无法使re.sub函数按预期工作。我遗漏了您的正则表达式中的一个错误,正如@minocha在另一个答案中提到的。谢谢您的更正。但我仍然无法使re.sub函数按预期工作。正如@minocha在另一个答案中提到的那样,我错过了您的正则表达式中的一个错误。声誉还不够:|。我一到那里就去做。名声还不够:|。我一到那里就去做。