百青藤其实就是原来的百度联盟,运行百青藤项目需要有自己的网站,通过挂百青藤挂上百度的广告就可以引来用户的点击,用户通过自己的网站点击就会产生响应的广告收益。同样谷歌、360等也提供相应的服务。
对于最近网上很火的异步技术,博主最近也进行了相对深入的了解。分析其开发思想无非就是抓取广告位跳转的链接、然后直接跳转到该链接的页面,以模拟用户点击的操作。
该篇文章主要记录一下博主对网上异步链接技术的摸索过程,以及分享一下相关经验,仅供交流。
网站里放入百青藤平台给出相关代码,才可以正确的展示出百度的相关广告,广告链接是根据用户喜好推荐给用户的,所以链接并不是一个静态不变的内容。观察其页面浏览器代码,发现链接嵌套在iframe中,iframe又是广告代码执行后的效果,所以js是取不到相应的链接的。
虽然前端技术比较难实现我们想要的效果,但是我们可以从其他方面去解决我们目前所遇到的问题,例如爬虫技术。htmlunit 是一款开源的java 页面分析工具,读取页面后,可以有效的使用htmlunit分析页面上的内容。 我们可以利用htmlunit+jsoup来解析广告代码动态生成的页面。
WebClient webClient = new WebClient(BrowserVersion.CHROME);//设置浏览器内核
webClient.getOptions().setCssEnabled(false);//不加载css
webClient.getOptions().setJavaScriptEnabled(true); //加载js
webClient.getOptions().setThrowExceptionOnScriptError(false); // 解析js出错时不抛异常
webClient.getOptions().setTimeout(10000); // 超时时间 ms
HtmlPage page = webClient.getPage("http://www.xxx.com");//访问url加载页面
List<FrameWindow> framelist = page.getFrames();//获取到页面中所有的frame
HtmlPage page_frame= (HtmlPage) framelist.get(0).getEnclosedPage();//取某一个frame,以第一个为例
Document document = Jsoup.parse(page_frame.asXml());//把frame页面转化为Elements elementsA = document.getElementsByTag("a");//获取所有A标签
//循环获取每个A标签中的href的值,即得到广告的链接
for (Element element : elementsA) {
String text = element.attr("href");
}
如链接地址为:https://www.baidu.com/s?ie=utf-8&wd=%E6%B1%9F%E6%B3%B0%E6%97%85%E6%B8%B8%E4%BF%9D%E9%99%A9&tn=58025142_oem_dg&nwd=%E6%97%85%E6%B8%B8+%E4%BF%9D%E9%99%A9&rsv_lu=1&fenlei=mv6qUZNxTZn0IZRqIHRznHcdPHD0T1dhuyuBujczuAcvnym4rHF90ZwV5H00mvmqnfKzmWYs0AkdpvbqP0KWUMw85yF9pywdTv-YuyNzThqzgvPsT6K1TL0qnfK1TL0z5HD0IZws5HD0UZN15Hb3njczPARLPj6sujmsuHm0UZN1IjYduAnsuywBPfK_IyPY5HNbm1K-uAcL0Zwbpyfq0Akdgv-bm1d4u6KWI7qYpgfq0APYgvP9IjY0mLwxUA7B5fKYTh7buHDqn0KYTh7buHcqn0KBThfq0AdbUjY0uZws5HD0pgwV5H00mywWUA71T1Ys0ZIG5Hf0uMPWpAdb5Hc0IAfqPHcknWRdnfKWIMFk5Hc3rjT1PfKCmy7WTjYkn1m40Auz5HDY0ZPz5Hnzn6K-XZKGujYznj03nHIxnW0srjD3g1csnHczPdtznjcLrH9xnW0zrH03g1csPHn3rNtznjRLrHPxnW0vP1Rs0ZNzUjdCIZwsFHPKFHFAFHFATv78pZN9UBRzwy4-IaRzwyP8FHFA0A4YIZ0qnf0
新建页面直接放入该链接,访问该页面即可立即跳转。
如果您的域名和网页服务器地址不一致,可以通过修改计算机C:\Windows\System32\Drivers\etc\hosts文件解决。
链接上tn的值一定要和百青藤后台的计费名相一致,否则会没有收益。
原文:https://www.cnblogs.com/lycj/p/12553604.html