爬取图片的python代码
时间: 2023-05-27 07:01:42 浏览: 65
以下是一个简单的Python代码,用于从网页中爬取图片:
```python
import requests
from bs4 import BeautifulSoup
url = "http://example.com" # 输入网页 URL
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")
images = soup.find_all("img")
for img in images:
img_url = img["src"]
img_name = img_url.split("/")[-1] # 获取图片名字
with open(img_name, "wb") as f:
f.write(requests.get(img_url).content) # 下载图片并保存
```
首先使用 requests 库和 BeautifulSoup 库获取网页的 HTML 内容,并使用 find_all 函数查找所有的 img 标签。然后,使用 for 循环逐个获取 img 标签中的 src 属性并解析出图片的 URL 和名字。最后,使用 requests 库下载图片,并将图片保存到本地文件系统中。
相关问题
批量爬取图片Python代码
以下是一个简单的Python代码,可以用来批量爬取图片:
```python
import requests
from bs4 import BeautifulSoup
import os
# 获取页面的HTML代码
def get_html(url):
try:
r = requests.get(url)
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text
except:
return ""
# 获取图片链接并下载图片
def download_img(url, root):
try:
r = requests.get(url)
r.raise_for_status()
# 获取图片名称
path = os.path.join(root, url.split("/")[-1])
# 写入文件
with open(path, "wb") as f:
f.write(r.content)
print("图片下载完成!")
except:
print("图片下载失败!")
# 爬取图片
def crawl_images(url, root):
html = get_html(url)
soup = BeautifulSoup(html, "html.parser")
# 获取所有的图片链接
img_links = soup.find_all("img")
for link in img_links:
img_url = link.get("src")
if img_url and img_url.startswith("http"):
download_img(img_url, root)
if __name__ == "__main__":
url = input("请输入要爬取的网页URL:")
root = input("请输入图片保存路径:")
crawl_images(url, root)
```
运行代码后,程序会要求输入要爬取的网页URL和图片保存路径。程序会自动爬取网页中所有的图片链接,并将图片保存到指定路径下。
批量爬取图片python代码
以下是使用Python进行批量爬取图片的示例代码:
```python
import requests
import os
def download_images(url, save_folder):
# 发送请求
response = requests.get(url)
# 获取该页面中所有图片的url
img_urls = get_img_urls(response.text)
# 下载图片
for img_url in img_urls:
# 获取图片名称
img_name = img_url.split('/')[-1]
# 拼接图片保存路径
img_path = os.path.join(save_folder, img_name)
# 下载图片
img_data = requests.get(img_url).content
with open(img_path, 'wb') as f:
f.write(img_data)
def get_img_urls(html):
# 此处需要根据实际情况使用正则表达式或者其他方法获取图片url列表
# 以下示例代码仅作为演示
img_urls = []
for i in range(10):
img_urls.append('https://example.com/image{}.jpg'.format(i))
return img_urls
if __name__ == '__main__':
url = 'https://example.com'
save_folder = 'images'
download_images(url, save_folder)
```
其中,`download_images`函数用于下载一个网页中的所有图片,`get_img_urls`函数用于获取一个网页中所有图片的url列表。在`get_img_urls`函数中,需要根据实际情况编写代码,使用正则表达式或其他方法获取图片url列表。
在主函数中,需要将要爬取的网页url和保存图片的文件夹路径传入`download_images`函数中即可。
阅读全文