如何用re获取当前页面的url
时间: 2023-09-09 08:05:15 浏览: 159
获得当前页面的url
### 回答1:
您可以使用Python中的正则表达式(re)和内置的urllib库来获取当前页面的URL。以下是一个示例代码:
```python
import re
import urllib.request
# 获取当前页面的URL
url = urllib.request.urlopen("http://www.example.com").geturl()
# 使用正则表达式提取URL中的信息(可选)
pattern = re.compile(r'http://(.*?)/')
match = pattern.search(url)
if match:
domain = match.group(1)
print("Domain:", domain)
print("URL:", url)
```
这个示例代码中,首先使用`urllib.request.urlopen()`方法打开URL,然后使用`geturl()`方法获取当前页面的URL。接着使用正则表达式来提取URL中的信息。这里使用了一个正则表达式来提取URL中的域名,如果匹配成功,就打印出域名。最后,打印出完整的URL。
需要注意的是,如果您想获取当前页面的URL,您不一定需要使用正则表达式来提取URL中的信息。`geturl()`方法已经返回了完整的URL,如果只是需要这个信息的话,就不需要使用正则表达式来处理它。
### 回答2:
要使用re获取当前页面的URL,首先需要导入re模块。然后,可以使用Python中的内置模块`urllib`来获取当前页面的URL。下面是具体的步骤:
1. 导入所需的模块:`import urllib.request`
2. 使用`urllib.request.urlopen()`方法打开当前页面的URL,并将其赋值给一个变量,如`response`:`response = urllib.request.urlopen(url)`
3. 使用`response.geturl()`方法获取当前页面的URL,并将其赋值给一个变量,如`current_url`:`current_url = response.geturl()`
4. 最后,使用re模块进行正则表达式匹配,提取出所需的部分URL。
下面是使用正则表达式获取当前页面的URL的示例代码:
```python
import urllib.request
import re
# 打开当前页面的URL
response = urllib.request.urlopen(url)
# 获取当前页面的URL
current_url = response.geturl()
# 正则表达式匹配并提取出所需的部分URL
pattern = r'https?://(.*?)\b'
match = re.search(pattern, current_url)
if match:
url_extracted = match.group(0)
print("提取出的URL是:", url_extracted)
```
以上就是使用re获取当前页面的URL的方法。通过使用Python的urllib和re模块,可以方便地获取并提取出所需的URL。
### 回答3:
要获取当前页面的URL,可以使用Python的re模块来实现。首先导入re模块,然后使用正则表达式来匹配URL。
代码如下:
```python
import re
import urllib.parse
# 获取当前页面的URL
def get_current_url():
# 获取当前页面的源代码
html = urllib.parse.unquote(input())
# 使用正则表达式匹配URL
pattern = r"http[s]?://[a-zA-Z0-9]+\.[a-zA-Z0-9]+(/[a-zA-Z0-9]*)*"
match = re.search(pattern, html)
if match:
url = match.group()
return url
else:
return "No match found."
# 示例
print(get_current_url())
```
在以上代码中,我们使用`urllib.parse.unquote()`函数来解码HTML实体,以便可以正确匹配URL。然后,我们定义了一个正则表达式`r"http[s]?://[a-zA-Z0-9]+\.[a-zA-Z0-9]+(/[a-zA-Z0-9]*)*"`,用来匹配URL的格式。使用`re.search()`函数来搜索源代码中的URL,如果匹配成功则返回URL,否则返回"No match found."。最后调用示例函数来测试代码。
注意:以上代码中的`input()`函数用于接收当前页面的源代码,可以根据实际情况进行替换。
阅读全文