首页 > 其他 > 详细

浅谈百青藤异步链接技术核心

时间:2020-03-23 18:19:45      阅读:246      评论:0      收藏:0      [点我收藏+]

百青藤http://pro.baidu.com

百青藤其实就是原来的百度联盟,运行百青藤项目需要有自己的网站,通过挂百青藤挂上百度的广告就可以引来用户的点击,用户通过自己的网站点击就会产生响应的广告收益。同样谷歌、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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!