用python写一个爬取图片的爬虫 
时间: 2023-03-29 21:01:04 浏览: 36
很高兴为您解答!爬取图片的爬虫可以使用Python语言编写,可以通过调用urllib库中的urlretrieve()函数来获取图片,可以参考以下代码:
import urllib.request
url = 'http://example.com/image.png'
urllib.request.urlretrieve(url, 'image.png')
相关问题
使用python写一个爬取百度图片的爬虫
好的,以下是使用Python编写爬取百度图片的爬虫的代码:
```python
import requests
import re
def get_img_urls(keyword, num):
imgs = []
for i in range(num):
url = f'https://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&word={keyword}&pn={i * 30}&rn=30'
response = requests.get(url)
img_urls = re.findall(r'"thumbURL":"(.*?)",', response.text)
imgs += img_urls
return imgs
def download_imgs(keyword, num):
img_urls = get_img_urls(keyword, num)
for i, url in enumerate(img_urls):
response = requests.get(url)
with open(f'{keyword}_{i}.jpg', 'wb') as f:
f.write(response.content)
print(f'Saved {keyword}_{i}.jpg')
if __name__ == '__main__':
download_imgs('猫', 10)
```
这个爬虫可以通过搜索关键词来爬取百度图片,并下载到本地。
用python写一个爬取汽车之家图片的爬虫
以下是一个简单的用 Python 爬取汽车之家图片的示例爬虫。
爬虫代码:
```
import requests
import os
from bs4 import BeautifulSoup
def download_img(url, path):
r = requests.get(url, stream=True)
if r.status_code == 200:
with open(path, 'wb') as f:
for chunk in r:
f.write(chunk)
def crawler(base_url, output_dir):
r = requests.get(base_url)
soup = BeautifulSoup(r.text, 'html.parser')
img_tags = soup.find_all('img')
for img in img_tags:
if 'src' in img.attrs:
img_url = img.attrs['src']
if img_url.startswith('//'):
img_url = 'http:' + img_url
elif not img_url.startswith('http'):
img_url = base_url + '/' + img_url
print('Downloading image: %s' % img_url)
filename = os.path.join(output_dir, img_url.split('/')[-1])
download_img(img_url, filename)
if __name__ == '__main__':
base_url = 'https://www.autohome.com.cn/news/'
output_dir = './images'
if not os.path.exists(output_dir):
os.mkdir(output_dir)
crawler(base_url, output_dir)
```
该爬虫将从汽车之家的新闻页面 `https://www.autohome.com.cn/news/` 中爬取所有图片,并将其保存到本地目录 `./images` 中。
首先,爬虫会使用 requests 库向页面发送 GET 请求并获取页面 HTML,接着使用 BeautifulSoup 库将其解析为文档对象。然后,通过查找 HTML 标签中的 img 标签,找到所有图片,并将其下载到本地目录。
在下载图片时,使用 requests 库传递 "stream=True" 参数以保证请求不会立即下载整个响应内容。通过逐块处理响应,可以防止过多占用内存。然后,将内容写入文件中。
在主函数中,定义了基础 URL 和保存图像的输出目录。使用 os 模块确保输出目录存在并调用爬虫函数开始爬取。
相关推荐








