scrapy爬图片一张
时间: 2023-10-28 11:21:12 浏览: 101
scrapy抓取图片
你可以使用Scrapy来爬取图片。首先,你需要创建一个Scrapy项目并设置好相关的配置。然后,在你的Spider类中,定义一个方法来处理图片的下载。
下面是一个简单的示例代码,用于爬取并下载一张图片:
```python
import scrapy
class MySpider(scrapy.Spider):
name = 'image_spider'
start_urls = ['http://example.com']
def parse(self, response):
# 提取图片的URL
image_url = response.css('img::attr(src)').get()
# 下载图片
yield scrapy.Request(image_url, callback=self.save_image)
def save_image(self, response):
# 保存图片到本地
filename = 'image.jpg'
with open(filename, 'wb') as f:
f.write(response.body)
self.log(f'Saved file {filename}')
```
在这个示例中,Spider类名为MySpider,我们定义了一个start_urls列表,其中包含要爬取的网址。在parse方法中,我们使用CSS选择器提取图片的URL,并通过yield关键字返回一个新的Request对象,并指定回调函数为save_image。在save_image方法中,我们将图片保存到本地文件。
要运行这个爬虫,请在命令行中使用以下命令:
```
scrapy crawl image_spider
```
请确保已安装Scrapy,并将代码保存为一个单独的Python文件,然后在命令行中执行以上命令。
这只是一个简单的示例,你可以根据自己的需求进行修改和扩展。例如,你可以修改parse方法提取多张图片的URL,并分别下载保存。
阅读全文