基于Webmagic的Java爬虫(六)爬取静态列表页上的图片并保存到本地

一、目标:
爬取美食杰上的粤菜菜谱的图片,并保存到本地。
URL:https://www.meishij.net/china-food/caixi/yuecai/.

二、思路:

  1. 观察要爬取图片的详情页的URL,写出详情页的正则表达式:“https:// www\.meishij\.net/zuofa/\S+\.html”
  2. 列表页上详情页链接的xpath:"//div[@class=“listtyle1_list clearfix”]/div/a/@href"
  3. 列表页的翻页xpath:"//*[@id=“listtyle1_w”]/div[2]/div/a[@class=“next”]/@href"
  4. 要爬取的图片的xpath:"//a[@id=“tongji_title”]/text()"
  5. 要爬取的图片对应的菜名的xpath://div[@class=“cp_headerimg_w”]"
  6. 判断当前页面是否为详情页
  7. 若为详情页,将图片和名称信息爬取下来
  8. 若不为文章页,在当前页面寻找详情页的链接地址和翻页地址,将它添加到抓取列表中
  9. 自定义Pipeline,将图片和对应的名称下载下来并保存在本地

三、代码:

  1. processor:
package ang03.processor;
import java.util.LinkedList;
import java.util.List;
import ang03.pipelline.DownloadPipeline;
import us.codecraft.webmagic.Page;
import us.codecraft.webmagic.Site;
import us.codecraft.webmagic.Spider;
import us.codecraft.webmagic.pipeline.ConsolePipeline;
import us.codecraft.webmagic.processor.PageProcessor;

/**
 * 爬取网站:"https://www.meishij.net/china-food/caixi/yuecai/"
 * 将图片和菜名爬取下来,并保存在 E:\\spider\\
 * @author Ada
 *
 */
public class CatePictrue implements PageProcessor{
   
	private Site site = Site.me()
						.setRetryTimes(3)
						.setSleepTime(1000)
						.setCharset("utf-8");
	
	//存储菜谱名的 List
	private static List<String> picName = new LinkedList<String>();
	
	//存储菜谱图片下载地址的 List
	private static List<String> picUrl = new LinkedList<String>();
	public void process(Page page
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值