十、爬虫下载汽车图片
作者:Irain
QQ:2573396010
微信:18802080892
GitHub项目链接:爬虫下载汽车图片
视频资源链接:爬虫下载汽车图片
爬取目标网页链接:二手车之家汽车.
1 创建scrapy项目和爬虫
参考链接:在DOC窗口创建scrapy项目和爬虫.
2 settings.py设置
3 核心内容:(代码在后面)
3.1 car_spider.py
3.2 pipelines.py
3.3 图片存储路径
4 成果展示
4.1 pycharm项目下的图片
4.2 文件夹下的图片
5 代码附件
5.1 car_spider.py
# -*- coding: utf-8 -*-
import scrapy
from piture_car.items import PitureCarItem
class CarSpiderSpider(scrapy.Spider):
name = 'car_spider'
allowed_domains = ['che168.com']
start_urls = ['https://www.che168.com/dealer/371543/35174484.html?pvareaid=100519&userpid=440000&usercid=440100']
def parse(self, response):
url = response.xpath("//div[@class='car-pic-list js-box-text']/a/img/@data-original").getall() # 获取汽车图片url
url = list(map(lambda url:response.urljoin(url),url)) # 每个url添加"https:"
yield PitureCarItem(url=url) # 传递
5.2 pipelines.py
import os
import urllib.request
class PitureCarPipeline(object):
def __init__(self):
self.path = os.path.join(os.path.dirname(os.path.dirname(__file__)),'image') # 图片存储路径
if not os.path.exists(self.path): # 检查是否存在Image文件夹
os.mkdir(self.path)
def process_item(self, item, spider):
urls = item['url'] # 提取图片url
for url in urls:
picture_name = url.split('_')[-1] # 从url中获取图片名称
urllib.request.urlretrieve(url=url,filename=os.path.join(self.path,picture_name)) # 下载图片 url和绝对路径
print("图片存储路径")
print(os.path.join(self.path,picture_name))
return item
5.3 items.py
import scrapy
class PitureCarItem(scrapy.Item):
url = scrapy.Field()
发布:2020年4月19日