使用Webmagic爬虫实现的签名档一键生成

实现原理

这里爬取的网址是http://jiqie.zhenbi.com/c/

然后获取到里面提交数据,提交地址,在对这些数据进行Post提交

解析html标签获得图片地址并输出到控制台

不会使用Webmagic爬虫框架的 自行百度配置

本文主要是学习Post提交

测试结果:

下面请看代码实现

import us.codecraft.webmagic.Page;

import us.codecraft.webmagic.Request;

import us.codecraft.webmagic.Site;

import us.codecraft.webmagic.Spider;

import us.codecraft.webmagic.model.HttpRequestBody;

import us.codecraft.webmagic.processor.PageProcessor;

import us.codecraft.webmagic.utils.HttpConstant;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import java.util.Random;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class PostDemo implements PageProcessor {

Site site = Site.me().setRetryTimes(3).setTimeOut(1500);

@Override

public void process(Page page) {

Random r = new Random();

//生成的文字

String text = "快乐的小蜘蛛";

//第一次请求:获取所有类型

if ("http://jiqie.zhenbi.com/c/".equals(page.getUrl().toString())){

//解析a标签

//彩色文字版本墨人动态签名档在线制作

List list = page.getHtml().$("a","href").all();

List listtext = page.getHtml().$("a","text").all();

// 创建 Pattern 对象 匹配数字

Pattern r = Pattern.compile("[0-9]+");

// 现在创建 matcher 对象

Matcher m;

Request req;

for (int i =0;i

m = r.matcher(list.get(i));

if (!m.find())continue;

req = new Request();

req.setUrl("http://jiqie.zhenbi.com/c/"+ m.group()+".htm");

req.putExtra("mindex",m.group());

req.putExtra("name",listtext.get(i));

page.addTargetRequest(req);

}

return;

//第二次请求:获取数据参数以及Post提交地址

}else if(page.getUrl().toString().endsWith(".htm")){

//是否有id :show

if (!page.getHtml().$("#show").match())return;

Request request =page.getRequest();

request.setMethod(HttpConstant.Method.POST);

//zhenbi('re2.php','0');

String index = page.getHtml().$("#up","onclick").regex("\\w+\\.").toString().replace(".","");

System.out.println(index);

request.setUrl("http://jiqie.zhenbi.com/c/"+index+".php");

Map map = new HashMap<>();

/* 提交数据

id 我是ZHT0301 我为自己代言

idi jiqie

id1 20

id2 16

id3 26

id4

id5 #624475

id6

*/

//获取参数

map.put("id",text);

map.put("idi","jiqie");

map.put("id1",page.getHtml()

.$("#id1").xpath("//select/option[@selected='selected']")

.$("option","value"));

map.put("id2",page.getHtml()

.$("#id2").xpath("//select/option[@selected='selected']")

.$("option","value"));

map.put("id3",page.getHtml().$("#id3","value"));

map.put("id4",page.getHtml().$("#id4","value"));

map.put("id5",page.getHtml().$("#id5","value"));

map.put("id6",page.getHtml().$("#id6","value"));

System.out.println(map);

request.setRequestBody(HttpRequestBody.form(map,"utf-8"));

page.addTargetRequest(request);

try {

//随缘冷静,冲动是魔鬼

Thread.sleep(r.nextInt(500)+100);

} catch (InterruptedException e) {

e.printStackTrace();

}

//第三次请求:获取图片的地址

}else{

page.putField("id",page.getRequest().getExtra("mindex"));

page.putField("name",page.getRequest().getExtra("name"));

page.putField("img_src",page.getHtml().$("img","src"));

}

}

@Override

public Site getSite() {

return site;

}

public static void main(String[] args) {

Spider.create(new PostDemo())

.addUrl("http://jiqie.zhenbi.com/c/")

.thread(1)

.run();

}

}

magicmatch java_签名图片一键批量生成 使用Java的Webmagic爬虫实现相关推荐

  1. Photoshop根据图片模板批量生成动态图片

    需求:给定图片模板,在图片上面维护相关数据,把Excel表中的信息一个一个作到图中. 就技术角度而言,这样的操作并没有多少技术含量,然而却需要耗费大量的时间.如果提供的数据是上百条甚至上千条,你是否仍 ...

  2. 获取 子文件夹 后缀_后期制作老司机教你一键批量生成项目文件夹

    我猜你的项目工程是这样的,当你老板说去修改一下之前几个月的工程的时候,你都不知道哪个工程才是最终版呀. 乱糟糟的工程 而且当你打开工程的时候,wo艹,素材怎么丢失了~~ 不管是后期制作者还是平常我们日 ...

  3. 【Unity编辑器扩展】包体优化神器,图片压缩,批量生成图集/图集变体,动画压缩

    功能介绍: 1. 压缩工具支持对图片原文件压缩(支持png/jpg),也支持使用Unity内置图片压缩批量对图片设置压缩参数. 2. 支持以文件夹或及其子文件夹为单位批量生成图集(SpriteAtla ...

  4. Python之深入解析如何一键批量生成真实的手机号码及其号码归属地解析

    ① 目标场景 平时在工作过程中,偶尔会需要大量的手机号码,去测试一些具体的业务功能,为了保证测试的有效性,手机号码的真实性尤为的重要. 那如何按要求批量生成一些真实的手机号码呢?本文就带大家利用 Py ...

  5. python模仿微信添加好友截图,一键批量生成微信添加好友聊天截图

    # -*- coding: utf-8 -*- import time,random,os,shutil import PIL.Image as Image import PIL.ImageColor ...

  6. python微信加人_python模仿微信添加好友截图,一键批量生成微信添加好友聊天截图...

    #-*- coding: utf-8 -*- importtime,random,os,shutilimportPIL.Image as ImageimportPIL.ImageColor as Im ...

  7. 如何快速把word文档中图片一键批量另存导出

    点击左上角的"文件"菜单 选择另存为 选择要保存图片的文件夹,然后在下面的保存类型的下拉菜单中选择 网页 ,然后点击 保存 . 4. 打开对应文件夹中的 .files 文件夹 就能 ...

  8. 批量生成二维码系统源码 电脑+手机自适应代码 含安装搭建教程

    分享一个批量生成二维码系统源码,一键批量生成包括网址,数字,文字,视频等各种形式的二维码,自动生成压缩包,一键下载.电脑+手机自适应代码,含安装搭建教程. 批量生成二维码系统源码帮助用户快速生成二维码 ...

  9. ChatGPT批量生成文章-ChatGPT文章生成器

    ChatGPT:一键批量生成高质量文章,提高生产效率! 随着信息爆炸的时代,文本生产成为了各个行业必不可少的一部分.但面对高强度的生产需求,人力资源却难以跟上步伐.现在,我们有一款基于人工智能和自然语 ...

最新文章

  1. python 漂亮的excel_python 自定义漂亮的 excel 结果测试报告
  2. asp.net调用百度地图API,实现电子地图
  3. Design Pattern Explained 读书笔记二——设计模式序言
  4. p750tm安装linux系统,Android 开发环境(虚拟机,LINUX, secureCRT)安装过程.pdf
  5. tomcat启动时,报java.io.EOFException
  6. 计算机考试前的心情作文,考试时的心情作文(七篇)
  7. cnn 准确率无法提升_清华类脑芯片再登Nature: 全球首款基于忆阻器的CNN存算一体芯片...
  8. java 中的集合_JAVA中的集合
  9. jsp中为什么有时out.write不能写,为什么?
  10. .NET Quartz 配置JOB
  11. android菜单对话框文字,Android 对话框、信息提示和菜单
  12. 中链云矿主办Web3.0 中国财富峰会
  13. 各种气象数据下载地址推荐
  14. 【bzoj1143: [CTSC2008]祭祀river】有向无环图的最长反链
  15. 单片机C语言九个重要的知识点总结
  16. 太牛了!B 站 UP 主开发会写高考作文的 AI
  17. 如何在百度地图上标注宾馆饭店(矢量点标注)并导出为图片
  18. pdf转wordpptexceljpg图片pdf编辑器转换修改
  19. NetToPlcSim_PLC_西门子PLC访问DEMO
  20. AlwaysOn3节点集群方案windows2012+sqlserver2012

热门文章

  1. BUUCTF MISC 二维码扫描
  2. 管理员技术(二): 访问练习用虚拟机、 命令行基础技巧 、 挂载并访问光盘设备、ls列表及文档创建、复制删除移动...
  3. python五边形的代码_python正五边形代码
  4. html文件设置成mac桌面,Mac软件教程:让你的Mac桌面放入无限多的文件
  5. Java实现积分过期保证时间_商城会员积分过期的实现方案
  6. 【英语语法】句子类型
  7. 大S首度曝光女儿正面照:小小幸福分享给大家
  8. 小猿圈Linux零基础自学之路
  9. python 对数函数_使用Python玩转高等数学(4):对数函数
  10. 吕国强计算机二级考试,考试科目代码表.doc