JAVA网络爬虫批量下载豌豆夹中的应用

今天终于把脚本弄好了,虽然是东拼西凑的,总算有点成就感啦,下面把代码帖这~

package studyjava;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Stream;

import java.net.HttpURLConnection;
import javax.xml.transform.stream.StreamSource;

public class client{
    public static void main(String[] args) throws IOException
    {
        //在D盘创建两份文件,一份为获取到的所有APK下载链接,一份为下载的所有应用名称
        File f1=new File("D:\\down.txt");
        File f2=new File("D:\\down_appname.txt");
        if(f1.exists())
            f1.delete();
        else
            f1.createNewFile();

        if(f2.exists())
            f2.delete();
        else
            f2.createNewFile();

        FileWriter fw=new FileWriter(f1,true);
        FileWriter fw2=new FileWriter(f2,true);

        String str;
        //下载的网址,如豌豆夹必备应用页
        URL url=new URL("http://www.wandoujia.com/essential/app");
        //下面就是给定一个网址,你怎么去获取它的源码咯
        URLConnection conn=url.openConnection();
        BufferedReader br=new BufferedReader(new InputStreamReader(conn.getInputStream()));
        //下面是争对每一行输入流进行过滤,是网址的给我弄出来,然后再创建下载链接
        while((str=br.readLine())!=null)
        {
            Pattern pattern=Pattern.compile("http://apps.wandoujia.com/apps/.+.([a-z]+\\.)*.+/download\"\\sdownload=\".+\\s*.*\\.apk\"");
            Matcher matcher=pattern.matcher(str);
            if(matcher.find())
            {   //正式写入下载网址和应用名称到相应文件中
                String downurl=matcher.group().split("\\s")[0].split("\"")[0];
                String downname=matcher.group().split("=")[1];
                fw.write(downurl);
                fw.write("\n");
                fw2.write(downname);
                fw2.write("\n");
                //下面是下载应用了
                byte[] buffer = new byte[4 * 1024];
                //获取应用的网络资源连接,
                URL urldown=new URL(downurl);
                HttpURLConnection conn2=(HttpURLConnection)urldown.openConnection();
                conn2.setDoInput(true);
                conn2.connect();
                //获取输入流
                InputStream in=conn2.getInputStream();
                //创建放置下载应用的文件夹
                File dir=new File("D:\\downapp");
                if(!dir.exists())
                    dir.mkdir();
                //创建下载的应用,文件名和存放路径
                File appdown=new File(dir,downname.split("\"")[1]);
                if(!appdown.exists())
                    appdown.createNewFile();
                //获取输出流
                FileOutputStream out=new FileOutputStream(appdown);

                int br1=-1;
                while((br1=(in.read(buffer)))!=-1)
                    {
                    out.write(buffer, 0, br1);
                    }
                out.flush();
                in.close();
                out.close();

            }
        }
        fw.close();
        fw2.close();
}
}
时间: 2024-10-02 07:37:10

JAVA网络爬虫批量下载豌豆夹中的应用的相关文章

Java 网络爬虫获取网页源代码原理及实现

Java 网络爬虫获取网页源代码原理及实现 1.网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成.传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件. 2.那么程序获取网页的原理到底是怎么回事呢?看下面的图:客服端首先向服务器端发出Http请求,之后服务器端返回相应的结果或者请求超时客户端自己报错. 服务器端发出的Http请求,实际上说是对服务器的文件的请求

java网络爬虫基础学习(一)

刚开始接触java爬虫,在这里是搜索网上做一些理论知识的总结 主要参考文章:gitchat 的java 网络爬虫基础入门,好像要付费,也不贵,感觉内容对新手很友好. 一.爬虫介绍 网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网下载网页,是搜索引擎的重要组成部分. 传统爬虫: 获得URL ->放入队列 ->抓取网页,分析信息 ->新的URL ->放入队列 ->抓取网页,分析信息... ->满足一定条件,停止. 聚焦爬虫: 根据一定的网页分析算法过滤与主题无关的链接

关于Java网络爬虫---模拟txt文件上传操作。

业务需求是这样的,公司400业务中客户使用的,400电话号码,可以添加多个目的码你可以理解为转接号码: 这些配置的目的码我们会在网关服务器上配置成白名单,既拥有某些权限.先提出的要求是先添加或者变动目的码要及时同步到网关. 场景: 1.我们的网关服务器接受的白名单(目的码)是已txt文件上传的,数据按照制定的格式保存在txt里面. 2.利用Java网络爬虫模拟txt文件上传.------2018-4-7现在不写了,代码在公司电脑上明天总结一下在写. 原文地址:https://www.cnblog

java网络爬虫基础学习(三)

尝试直接请求URL获取资源 豆瓣电影 https://movie.douban.com/explore#!type=movie&tag=%E7%83%AD%E9%97%A8&sort=time&page_limit=20&page_start=0 浏览器打开该地址: 发现是这样的 在这里我们需要用java抓取电影的信息,首先要找到资源链接,浏览器右键->检查打开谷歌调试工具 我们可以看到下图 有很多的资源请求,在这里我是一个个搜索,看那个是电影信息的Headers 发

Python简单网络爬虫实战—下载论文名称,作者信息(下)

在Python简单网络爬虫实战—下载论文名称,作者信息(上)中,学会了get到网页内容以及在谷歌浏览器找到了需要提取的内容的数据结构,接下来记录我是如何找到所有author和title的 1.从soup中get到data类 soup中提供了select方法来筛选所需的类.该方法使用方法如下: articlename = soup.select('title') 该语句即将soup中所有的title元素放到articlename中.select也有其他用法 articlename = soup.s

学 Java 网络爬虫,需要哪些基础知识?

说起网络爬虫,大家想起的估计都是 Python ,诚然爬虫已经是 Python 的代名词之一,相比 Java 来说就要逊色不少.有不少人都不知道 Java 可以做网络爬虫,其实 Java 也能做网络爬虫而且还能做的非常好,在开源社区中有不少优秀的 Java 网络爬虫框架,例如 webmagic .我的第一份正式工作就是使用 webmagic 编写数据采集程序,当时参与了一个舆情分析系统的开发,这里面涉及到了大量网站的新闻采集,我们就使用了 webmagic 进行采集程序的编写,由于当时不知道其设

一个批量修改文件夹中文件名的命令

1. 只修改当前目录下的文件 [root]# rename -s  \.png  \_iphone.png  * 这个是修改目录下 的所有文件名,加入一个后缀 如: 1.png    ->>>   1_iphone.png 2. 递归修改当前目录下的所有子文件夹 [root]# find ./ -name  "*.png" | xargs  -I {} rename -s \.png  \_iphone.png  {} 如: 2.png    ->>>

java 网络爬虫框架

java 网络爬虫框架: apache Nutch ,Heritrix等,主要参照开源社区提供的40个开源项目 文章背景: 最近要写个爬虫抓去新浪微博的数据,然后用hadoop存储后,进行分析,就在网上搜取相关资料. 网友推荐使用python来做,但鉴于本人擅长的是java,学习python需要一定的时间成本,还是选择java.一开始想自己从头写,搜到apache httpClient,  后来想着还是用开源成熟的框架来做,目前觉得apache Nutch 和Heritrix是个不错的选择,不过

WebCollector下载整站页面(JAVA网络爬虫)

很多业务需要下载整站页面(有时为多个站点),将页面按照网站拓扑结构存放. 下面给出用JAVA爬虫WebCollector(2.09版本以上)爬取整站网页并按照网页拓扑结构存储到本地的代码. 代码中的抽取器可以作为一个插件复用. WebCollector的jar包可到官网下载:WebCollector官网.进入官网后下载webcollector-版本号-bin.zip,解压得到所需jar包. import cn.edu.hfut.dmic.webcollector.crawler.MultiExt