爬虫正则表达式匹配href
时间: 2023-08-29 09:11:36 浏览: 54
下面是匹配HTML标签中的href属性的正则表达式:
```python
import re
html = '<a href="https://www.google.com">Google</a>'
pattern = re.compile(r'<a\s+href="([^"]+)"')
match = pattern.search(html)
if match:
print(match.group(1))
```
解释一下这个正则表达式:
- `<a\s+href="`: 匹配`<a`标签和`href`属性之间的空格,以及`href`属性的开头双引号。
- `([^"]+)`: 匹配除了双引号以外的任意字符,一直到下一个双引号为止。这个括号表示一个捕获组,我们可以用`group(1)`来提取它的值。
- `"`: 匹配`href`属性的结尾双引号。
所以,这个正则表达式的意思是:匹配`<a`标签中的`href`属性,提取属性值。
相关问题
python爬虫正则表达式
Python爬虫正则表达式是一种用于解析和匹配文本的工具。正则表达式是一种基于字符序列的模式匹配方法,它可以用来识别文本中的特定模式,例如搜索或替换字符串中的特定字符或单词。
在Python中,使用re模块来实现正则表达式操作。以下是一些常见的正则表达式符号:
1. . :匹配任意字符
2. * :匹配前一个字符0次或多次
3. + :匹配前一个字符1次或多次
4. ? :匹配前一个字符0次或1次
5. [] :匹配括号内的任意一个字符
6. () :标记一个子表达式的开始和结束位置,匹配结果可以在后续的操作中使用
7. \ :转义字符,用于匹配特殊字符,如\w表示匹配任意字母或数字
下面是一个简单的示例,使用正则表达式匹配HTML标签中的超链接:
import re
html = '<a href="https://www.baidu.com">百度</a>'
pattern = r'<a href="(.*?)">(.*?)</a>'
result = re.findall(pattern, html)
print(result)
输出结果为:
[('https://www.baidu.com', '百度')]
正则表达式获取href
正则表达式获取href是一种常见的网页爬虫技术,可以通过正则表达式匹配网页中的链接地址。在Python中,可以使用re模块中的findall方法来实现正则表达式匹配。具体实现方法如下:
import re
url_regex = re.compile('<a[^>]+href=["\'](.*?)["\']', re.IGNORECASE)
result = url_regex.findall(html_str)
其中,url_regex是一个正则表达式对象,用于匹配网页中的链接地址。findall方法会返回一个列表,其中包含了所有匹配到的链接地址。在这个例子中,我们使用了一个通用的正则表达式,可以匹配所有的a标签中的href属性。如果需要匹配其他类型的链接,可以根据实际情况修改正则表达式。