scrapy爬取贝壳图片
时间: 2023-08-13 18:04:56 浏览: 168
scrapy爬取cosplay图片并保存到本地指定文件夹
首先,你需要安装 scrapy :
```python
pip install scrapy
```
然后,你可以创建一个 scrapy 项目:
```python
scrapy startproject beike
```
进入项目目录,创建一个名为 `beike_spider.py` 的文件,代码如下:
```python
import scrapy
class BeikeSpider(scrapy.Spider):
name = 'beike'
allowed_domains = ['bj.ke.com']
start_urls = ['https://bj.ke.com/ershoufang/']
def parse(self, response):
img_urls = response.css('.lj-lazy::attr(data-original)').getall()
for img_url in img_urls:
yield {
'image_urls': [img_url]
}
```
这个爬虫会访问贝壳网二手房页面,提取页面中所有图片的链接并返回。你可以通过以下命令来运行这个爬虫:
```python
scrapy crawl beike -o images.json
```
这个命令会把爬取到的图片链接保存到一个名为 `images.json` 的文件中。如果你想要下载这些图片,可以在 `settings.py` 文件中添加以下配置:
```python
ITEM_PIPELINES = {'scrapy.pipelines.images.ImagesPipeline': 1}
IMAGES_STORE = 'images'
```
这个配置会使用 Scrapy 内置的 `ImagesPipeline` 管道来自动下载图片,并把图片保存到 `images` 目录中。你可以在 `beike_spider.py` 文件中增加以下代码来启用图片下载:
```python
class BeikeSpider(scrapy.Spider):
# ...
def item_completed(self, results, item, info):
image_paths = [x['path'] for ok, x in results if ok]
if image_paths:
item['image_paths'] = image_paths
return item
```
这个代码会在下载完成后自动把图片的路径保存到 `image_paths` 字段中。现在你可以通过以下命令来运行这个爬虫并下载图片:
```python
scrapy crawl beike
```
这个命令会把下载到的图片保存到 `images/full` 目录中。
阅读全文