用python爬取图片
时间: 2023-08-10 18:56:47 浏览: 95
Python中的requests库可以用来爬取图片。具体步骤如下:
1. 导入requests库
```
import requests
```
2. 发送请求获取图片
```
url = '图片链接'
response = requests.get(url)
```
3. 将图片保存到本地
```
with open('图片名称.jpg', 'wb') as f:
f.write(response.content)
```
其中,url为图片链接,response为请求响应对象,content属性为响应内容的二进制形式,使用with open语句将图片保存到本地。
注意:在爬取图片时,需要注意版权问题,不要侵犯他人权益。
相关问题
怎么用python爬取图片
可以使用Python中的`requests`和`urllib`库来爬取图片。以下是一个简单的示例:
```
import requests
import urllib.request
url = 'https://www.example.com/image.jpg'
# 使用requests库发送HTTP请求获取图片数据
response = requests.get(url)
# 将图片数据写入文件中
with open('image.jpg', 'wb') as f:
f.write(response.content)
# 使用urllib库将图片下载到本地
urllib.request.urlretrieve(url, 'local_image.jpg')
```
上述代码中,我们首先将需要爬取的图片的URL保存在`url`变量中。然后,使用`requests.get()`方法发送HTTP请求获取图片的二进制数据,这些数据被保存在`response.content`中。接着,我们将这些二进制数据写入图片文件中,以便下载到本地。最后,我们使用`urllib.request.urlretrieve()`方法将图片下载到本地。
当然,该示例只是一个简单的例子,实际应用中可能需要考虑更多细节,例如如何处理异常、如何处理重定向等等。
如何使用Python爬取图片?
以下是使用Python爬取图片的两种方法:
1. 使用urllib库和正则表达式爬取图片[^1]:
```python
import urllib.request
import re
def download_image(url, save_path):
response = urllib.request.urlopen(url)
image_data = response.read()
with open(save_path, 'wb') as f:
f.write(image_data)
def crawl_images(url):
html = urllib.request.urlopen(url).read().decode('utf-8')
img_urls = re.findall(r'<img.*?src="(.*?)".*?>', html)
for img_url in img_urls:
if img_url.startswith('http'):
download_image(img_url, img_url.split('/')[-1])
# 调用函数进行爬取
crawl_images('http://example.com')
```
2. 使用requests库和json解析爬取图片[^2]:
```python
import requests
import json
class BaiduSpider:
def __init__(self):
self.url = 'http://example.com?page={}&number={}'
self.headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
}
def parse_html(self, url):
img_html = requests.get(url=url, headers=self.headers).text
img_json = json.loads(img_html)
print(img_json)
def crawl(self):
page = 185 // 30 if 185 % 30 == 0 else 185 // 30 + 1
for number in range(page):
pn = number * 30
self.parse_html(self.url.format(pn, number))
# 调用函数进行爬取
baidu = BaiduSpider()
baidu.crawl()
```
阅读全文