一、新建一个tupian爬虫项目
scrapy startproject tupian
二、进入到tupian项目,新建一个image爬虫文件
cd tupian
scrapy genspider image www.xxx.com
三、修改配置文件settings
ROBOTSTXT_OBEY = False
LOG_LEVEL = 'ERROR'
USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36"
四、指定要爬取的页面
start_urls = ["https://sc.XXXX/kejitupian.html"]
五、获取图片的地址
def parse(self, response):
图片列表= response.xpath('/html/body/div[3]/div[2]/div')
'/html/body/div[3]/div[2]/div[1]'
'/html/body/div[3]/div[2]/div[1]/img'
for i in 图片列表:
图片地址 ='https:'+i.xpath('./img/@data-original').extract_first()
print(图片地址)
六、构建items对象
链接地址 = scrapy.Field()
七、将item对象导入爬虫文件,并实例化该对象
from ..items import TupianItem
for i in 图片列表:
图片地址 ='https:'+i.xpath('./img/@data-original').extract_first()
item对象=TupianItem()
item对象['链接地址']=图片地址
yield item对象
八、新建管道类,并导入ImagesPipeline
from scrapy.pipelines.images import ImagesPipeline
class 图片管道类(ImagesPipeline):
def get_media_requests(self, item, info):
图片地址=item['链接地址']
yield scrapy.Request(图片地址)
def file_path(self, request, response=None, info=None, *, item=None):
图片名称 =request.url.split('/')[-1]
return 图片名称
def item_completed(self, results, item, info):
return item
九、开启管道,由于不是默认的管道类,所以需要修改一下
ITEM_PIPELINES = {
"tupian.pipelines.图片管道类": 300,
}
十、指定图片保存的路径
IMAGES_STORE='图片夹'
十一、启动爬虫
scrapy crawl image
十二、运行结果
标签:scrapy,tupian,--,地址,爬取,item,Scrapy,div,图片 From: https://blog.51cto.com/u_15288375/6176563