python用正则表达式提取图片链接
时间: 2023-09-28 12:08:53 浏览: 54
可以使用Python的re模块来进行正则表达式匹配,以下是一个示例代码:
```python
import re
# 定义正则表达式
pattern = r'<img.*?src="(.*?)".*?>'
# 要匹配的文本
text = '<img src="http://example.com/image1.jpg"><img src="http://example.com/image2.jpg">'
# 进行匹配
result = re.findall(pattern, text)
# 输出匹配结果
print(result)
```
在上述代码中,我们首先定义了一个正则表达式,它用于匹配HTML中的img标签,并提取其中的src属性值。然后,我们定义了一个要匹配的文本,并使用re模块的findall函数进行匹配。最后,我们输出了匹配结果。
运行上述代码,输出的结果应该是一个包含两个元素的列表,分别对应两个图片的链接:
```
['http://example.com/image1.jpg', 'http://example.com/image2.jpg']
```
需要注意的是,正则表达式只能匹配符合规则的字符串,如果HTML中的img标签不是按照惯例的格式书写,那么这个正则表达式可能会失效。因此,在实际使用中,需要根据实际情况来灵活调整正则表达式。
相关问题
python正则表达式爬取图片
您可以使用Python的正则表达式模块re来爬取图片。首先,您需要先通过网络请求获取网页的HTML代码,然后使用正则表达式来匹配图片的URL。
下面是一个简单的示例代码,将爬取指定网页中的所有图片链接:
```python
import re
import requests
def get_image_urls(url):
# 发起网络请求获取网页内容
response = requests.get(url)
html = response.text
# 使用正则表达式匹配图片链接
pattern = r'<img.*?src="(.*?)".*?>'
image_urls = re.findall(pattern, html)
return image_urls
# 指定要爬取的网页URL
url = 'http://example.com'
# 获取图片链接列表
image_urls = get_image_urls(url)
# 打印图片链接
for image_url in image_urls:
print(image_url)
```
在上述代码中,我们使用了`requests`库来发起网络请求并获取网页内容。然后,使用正则表达式`<img.*?src="(.*?)".*?>`来匹配所有`<img>`标签中的`src`属性的值,即图片链接。最后,将获取到的图片链接打印出来。
需要注意的是,正则表达式只能提取简单的图片链接,如果网页中图片链接的格式复杂或者有其他特殊情况,可能需要根据实际情况调整正则表达式。此外,爬取网页内容涉及到一些法律和道德问题,请确保您的行为符合相关规定和道德准则。
正则表达式爬取图片源代码
可以使用Python的re模块和requests模块来实现正则表达式爬取图片源代码。具体步骤如下:
1. 导入requests和re模块:
```python
import requests
import re
```
2. 发送请求获取网页源代码:
```python
url = 'https://www.example.com'
response = requests.get(url)
html = response.text
```
3. 使用正则表达式匹配图片链接:
```python
pattern = r'<img.*?src="(.*?)".*?>'
img_urls = re.findall(pattern, html)
```
4. 下载图片:
```python
for img_url in img_urls:
response = requests.get(img_url)
with open('image.jpg', 'wb') as f:
f.write(response.content)
```
其中,正则表达式`<img.*?src="(.*?)".*?>`可以匹配所有`<img>`标签中的`src`属性值,`.*?`表示非贪婪匹配,`()`表示提取匹配结果。