使用beautifulsoup获得picture标签下的img标签的图片url
时间: 2024-05-04 07:22:17 浏览: 149
假设我们有以下的HTML代码:
```
<picture>
<source srcset="image.webp" type="image/webp">
<img src="image.jpg" alt="An image">
</picture>
```
可以使用BeautifulSoup库来获取`<picture>`标签下的`<img>`标签的图片URL,代码如下:
```python
from bs4 import BeautifulSoup
html = """
<picture>
<source srcset="image.webp" type="image/webp">
<img src="image.jpg" alt="An image">
</picture>
"""
soup = BeautifulSoup(html, 'html.parser')
img_tag = soup.picture.img
img_url = img_tag['src']
print(img_url) # 输出:image.jpg
```
此处我们首先将HTML代码传入BeautifulSoup库中,然后使用`soup.picture.img`获取`<picture>`标签下的`<img>`标签,最后获取`<img>`标签的`src`属性即可得到图片的URL。
相关问题
python爬取豆瓣明星图片
要使用Python爬取豆瓣明星图片,可以通过以下步骤实现:
1. 导入所需的库和模块,例如requests、BeautifulSoup等。
2. 使用requests库发送HTTP请求,获取豆瓣明星的主页HTML内容。
3. 使用BeautifulSoup库解析HTML内容,找到所有包含明星图片的a标签对象。
4. 遍历a标签对象列表,提取每个a标签中的图片链接。
5. 将图片链接保存到一个列表中。
6. 遍历图片链接列表,使用requests库下载每张图片并保存到本地。
以下是一个简单的代码示例,展示了如何使用Python爬取豆瓣明星图片:
```python
import requests
from bs4 import BeautifulSoup
# 发送HTTP请求,获取豆瓣明星的主页HTML内容
url = "https://movie.douban.com/celebrity/1011562/photos/"
response = requests.get(url)
html_content = response.text
# 解析HTML内容,找到所有包含明星图片的a标签对象
soup = BeautifulSoup(html_content, "html.parser")
a_list = soup.find_all("a", class_="cover")
# 提取每个a标签中的图片链接
picture_list = []
for a in a_list:
img_src = a.find("img")["src"]
picture_list.append(img_src)
# 下载图片并保存到本地
for picture_url in picture_list:
response = requests.get(picture_url)
with open("picture.jpg", "wb") as file:
file.write(response.content)
print("豆瓣明星图片已下载并保存到本地!")
```
python爬虫(爬取图片)代码
Python爬虫用于从网站上抓取数据,包括图片。这里是一个简单的例子,展示如何使用requests和BeautifulSoup库来爬取并保存图片:
```python
import requests
from bs4 import BeautifulSoup
import os
# 目标URL
url = "https://example.com/picture-gallery"
# 发送GET请求
response = requests.get(url)
# 检查请求是否成功
if response.status_code == 200:
# 解析HTML内容
soup = BeautifulSoup(response.text, 'html.parser')
# 查找所有图片标签 (假设它们有相同的class名)
img_tags = soup.find_all('img', class_='image-class')
# 爬取图片URL
image_urls = [img['src'] for img in img_tags]
# 创建目标文件夹,如果不存在的话
if not os.path.exists("images"):
os.makedirs("images")
# 逐个下载并保存图片
for i, img_url in enumerate(image_urls):
response_img = requests.get(img_url)
filename = f"images/image_{i}.jpg" # 可自定义文件命名规则
with open(filename, 'wb') as f:
f.write(response_img.content)
print("图片下载完成!")
else:
print(f"请求失败,状态码: {response.status_code}")
阅读全文