Python 使用re.sub从urllib筛选html响应
我尝试的是将网站的html响应作为变量字符串,并过滤掉除点(.)、数字(0-9)、冒号(:)之外的所有内容。我似乎无法用re.sub解决这个问题。可能吗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
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在另一个答案中提到的那样,我错过了您的正则表达式中的一个错误。声誉还不够:|。我一到那里就去做。名声还不够:|。我一到那里就去做。