微信公众号开发--善忘影视(三)

  |   0 评论   |   224 浏览

    善忘影视的目标是让大家找电影的时间变快,搜索结果准确,没有网站上的那么多广告内容, 要跳好几个广告页面,才有我们需要的电影下载链接,还有google浏览器那红色背景的提醒, 现在用google浏览器的人多了,一看到下面这个界面,你还有勇气点开不。

    QQ20160719-0@2x
    可能病毒, 只是误报而已, 但是里面含有广告链接肯定是不可避免的, 至于广告带什么内容,有没有病毒就不清楚了, 我一般不敢去点。

    说了那么多, 下面就讲讲我搜索的数据来源了。现在搜录了3w多影视剧集,都是来自于网上的链接,自己写程序抓取来的,数据库结构很简单。一共就两个表的信息。movie_crawl表示抓取内容信息,movie_crawl_link表示抓取对应影视剧集的下载链接。

    CREATE TABLE movie_crawl (

    id bigint(20) NOT NULL AUTO_INCREMENT,

    movie_type int(11) DEFAULT NULL COMMENT ‘电影分类1.最新电影2.华语电视剧3.日韩电视剧4.日韩电影5.欧美电影6.国内电影7.综合电影’,

    title varchar(200) DEFAULT NULL COMMENT ‘标题’,

    pub_time datetime DEFAULT NULL COMMENT ‘发布时间’,

    downlink varchar(300) DEFAULT NULL COMMENT ‘下载链接’,

    content text COMMENT ‘内容’,

    source_url varchar(200) DEFAULT NULL COMMENT ‘下载来源链接’,

    create_time datetime NOT NULL COMMENT ‘创建时间’,

    PRIMARY KEY (id),

    UNIQUE KEY source_url_UNIQUE (source_url)

    ) ENGINE=MyISAM AUTO_INCREMENT=31026 DEFAULT CHARSET=utf8 COMMENT=‘电影抓取’;

    CREATE TABLE movie_crawl_link (

    id bigint(20) NOT NULL AUTO_INCREMENT,

    downlink varchar(400) DEFAULT NULL COMMENT ‘下载链接’,

    mc_id bigint(20) NOT NULL,

    PRIMARY KEY (id)

    ) ENGINE=MyISAM AUTO_INCREMENT=260871 DEFAULT CHARSET=utf8 COMMENT=‘下载链接’;


    现在只抓取来三个网站的数据,如果大家有好的推荐, 请邮件给我, 或直接留言回复就好了, 我多抓取一些数据过来了,壮大我的数据库资源。

    抓取的方式很简单, 就是直接硬编码。使用jsoup,来解析下载页面,获取需要的信息入库, 然后微信搜索结果展示。

    抓取过程中 ,发现电影天堂8的网站有乱码问题, 好像页面使用的gbk的编码, 直接抓取jsoup方式会有些中文乱码,所以使用另外一种先通过流获取页面数据保存为文件,然后jsoup来解析文件。能够解决乱码问题。关键代码如下:

    Document doc1 = Jsoup.parse(readHtml(url,"GBK"), "http://www.dytt8.net/");

    public static String readHtml(String myurl,String charsetName) {

    StringBuffer sb = new StringBuffer();

    URL url;

    try {

    url = new URL(myurl);

    BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream(), charsetName));

    String s = "";

    while ((s = br.readLine()) != null) {

    sb.append(s + "\r\n");

    }

    br.close();

    } catch (Exception e) {

    logger.error(e.getMessage(), e);

    }

    return sb.toString();

    }

    评论

    发表评论

    validate