使用scrapy来抓取 ChinaPub 这个网站上的图片_并且将其下载到本地
2018-01-08 10:03
597 查看
1.首先我们使用 scrapy startproject chinapub 这个命令来创建出一个scrapy项目,创建完毕之后scrapy的目录结构如下图所示:
2.在spider目录下新建一个 chinapub.py的文件,并且编写上下面的代码.
2.在spider目录下新建一个 chinapub.py的文件,并且编写上下面的代码.
# -*- coding: utf-8 -*- import scrapy from scrapy.spider import Spider from scrapy.selector import Selector from chinapub.items import ChinapubItem import urllib from urllib import request import sys import os class ReadbookSpider(scrapy.Spider): name = "readbook" allowed_domains = ["http://www.china-pub.com/"] #start_urls = ['https://www.dushu.com/book/'] start_urls = ['http://product.china-pub.com/cache/rank3/onlinecenter.html'] def parse(self, response): selector = Selector(response) #创建选择器 imgs_path = sys.path[0]+"/imgs/" #xpath的方式来提取出页面想要内容的信息 imgs = selector.xpath("//div[@class='tjyd']/ul/li/a/img/@file").extract() #for imgpath in imgs: for index in range(len( imgs )): print(imgs[index]) response = request.urlopen(imgs[index]) binary_data = response.read() temp_file = open( imgs_path+str(index)+'.jpg','wb' ) temp_file.write(binary_data) temp_file.close() #urllib.urlretrieve(imgpath,"F:/imgs/1.jpg") pass
3.在项目的根目录下新建一个 imgs 这样名字的一个文件夹如下图
4.在项目的根目录下创建一个main.py这样的文件,编写上下面的代码
# -*- coding: utf-8 -*- __author__ = 'bobby' from scrapy.cmdline import execute import sys import os sys.path.append(os.path.dirname(os.path.abspath(__file__))) #获取到当前整个工程 ArticleSpider这个项目的目录路径 os.path.dirname 这个函数指的是当前这个文件路径,os.path.dirname指的是某个目录的父级别路径 execute(["scrapy","crawl","readbook"]) # #sys.path.append("F:\scrapy_project\ArticleSpider")
5.运行主程序文件
结果就把
http://product.china-pub.com/cache/rank3/onlinecenter.html url下的所有文件全部都爬取下来了
效果如下图所示:
相关文章推荐
- python抓取网站的图片并下载到本地的方法
- python抓取网站的图片并下载到本地
- Node.js 使用http客户端得到网站的图片下载到本地
- ASP.NET下载远程图片保存到本地的方法、保存抓取远程图片
- ASP.NET下载远程图片保存到本地的方法、保存抓取远程图片
- Android异步下载图片并且缓存图片到本地
- [转帖]利用HtmlAgilityPack抓取XX网站图片并下载~~~~~~邪恶版。。。。
- 使用urlconnection下载文件或图片并保存到本地
- Android异步从网络下载图片并且缓存图片到本地的demo
- Android异步从网络下载图片并且缓存图片到本地的demo
- 使用JAVA在线下载图片至本地,并上传至FTP
- Python:使用Scrapy框架的ImagesPipeline下载图片如何保持原图片名称呢?
- [信息采集专家]如何抓取文章内容的同时将图片也下载到本地
- python成长日记1:使用python访问网站,下载图片
- ASP.NET下载远程图片保存到本地的方法、保存抓取远程图片
- 用ASP.NET实现下载远程图片保存到本地的方法 保存抓取远程图片的方法
- 使用MFC的WinInet下载网页图片存于本地
- Android异步下载图片并且缓存图片到本地
- 使用ThinkPHP自带的Http类下载远程图片到本地的实现代码
- Android异步从网络下载图片并且缓存图片到本地的demo