微信公众号开发--善忘影视(三)
善忘影视的目标是让大家找电影的时间变快,搜索结果准确,没有网站上的那么多广告内容, 要跳好几个广告页面,才有我们需要的电影下载链接,还有google浏览器那红色背景的提醒, 现在用google浏览器的人多了,一看到下面这个界面,你还有勇气点开不。
可能病毒, 只是误报而已, 但是里面含有广告链接肯定是不可避免的, 至于广告带什么内容,有没有病毒就不清楚了, 我一般不敢去点。
说了那么多, 下面就讲讲我搜索的数据来源了。现在搜录了3w多影视剧集,都是来自于网上的链接,自己写程序抓取来的,数据库结构很简单。一共就两个表的信息。movie_crawl表示抓取内容信息,movie_crawl_link表示抓取对应影视剧集的下载链接。
CREATE TABLEmovie_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();
}