当前位置: 首页 > news >正文

便宜做网站公司/网络推广app是干什么的

便宜做网站公司,网络推广app是干什么的,沈阳创造价值网站,wordpress增强插件需求利用 get 请求 访问博客, 增加阅读量, 易于搜索引擎收录实现要点注意: 每次用代码访问博客就会增加一个访问量, 设计思路是获取文章共分几页显示, 从每页的文章列表中爬出文章的url, 然后遍历这些url进行get请求访问.每篇博客的网址是 /article/3605162.html, 最后面的数字…

需求利用 get 请求 访问博客, 增加阅读量, 易于搜索引擎收录

实现要点注意: 每次用代码访问博客就会增加一个访问量, 设计思路是获取文章共分几页显示, 从每页的文章列表中爬出文章的url, 然后遍历这些url进行get请求访问.

每篇博客的网址是 /article/3605162.html, 最后面的数字为标记id, 每篇文章不同

博客文章列表为 http://blog.csdn.net/never_cxb/article/list/1, 我们要做的就是从中爬出每篇文章的url

文章比较多, 会分好几页显示 http://blog.csdn.net/never_cxb/article/list/1 最后面的数字1会递增为2, 3, 4 等等. 可以在 http://blog.csdn.net/never_cxb/article/list/1 最下面的25条数据 共2页1 2 下一页 尾页 爬出一共几页

为了防止被封号, 随机访问某页文章列表, 随机访问该页上的某篇文章

对某个文章url进行get请求访问[code]// 对一个文章url进行get请求访问

public static void accessBolg(String blogUrl) {

URL url;

try {

url = new URL(blogUrl);

HttpURLConnection con = (HttpURLConnection) url.openConnection();

con.addRequestProperty("Content-Type", "text/html; charset=UTF-8");

con.addRequestProperty(

"User-Agent",

"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.104 Safari/537.36");

con.setRequestMethod("GET");

if (con.getResponseCode() == 200) {

InputStream inputStr = con.getInputStream();

StreamTool.read(inputStr);

System.out.println(blogUrl + " has been accessed");

// 给个随机数暂停访问

int sleepSec = new Random().nextInt(200) + 100;

Thread.sleep(sleepSec * 1000);

}

} catch (MalformedURLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

获取某列表页的文章 url 集合[code]// 获取该列表页上的文章 url 集合

public static List getBolgUrls(String listUrl) {

List result = new ArrayList(20);

Document doc;

try {

doc = Jsoup.connect(listUrl).userAgent("Mozilla").timeout(3000)

.get();

Elements links = doc.select("a[href]");

for (Element link : links) {

if (link.text().equals("阅读")) {

// 在属性名前加 abs: 前缀,取得一个绝对路径,

// 这样就可以返回包含根路径的URL地址attr("abs:href")

result.add(link.attr("abs:href"));

}

}

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return result;

}

获取一共分几页显示[code]// 获取文章页数

public static HomePage countPage(String pageUrl) {

Document doc;

try {

doc = Jsoup.connect(pageUrl).userAgent("Mozilla").timeout(3000)

.get();

Elements links = doc.select(".pagelist");

Element link = links.first();

String text = link.select("span").text();

System.out.println(text);

String pattern = new String("(\\d+)[^\\d]*(\\d+)[^\\d]*");

// 创建 Pattern 对象

Pattern r = Pattern.compile(pattern);

Matcher m = r.matcher(text);

if (m.find()) {

return new HomePage(Integer.valueOf(m.group(2)),

Integer.valueOf(m.group(1)));

}

//

// 29条数据 共2页首页

// 上一页

// href="/never_cxb/article/list/1">1

2

//

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return new HomePage();

}

随机访问某个列表页[code]omePage home = countPage(baseListUrl);

int page = home.getPage();

List originPages = new ArrayList(page);

for (int i = 0; i < page; i++) {

originPages.add(i);

}

List blogList = new ArrayList(page);

// random

for (int i = 0; i < page; i++) {

int random = new Random().nextInt(originPages.size());

int index = originPages.get(random) + 1;

String list = baseListUrl + index;

originPages.remove(random);

blogList.add(list);

}

打乱某列表页上的文章 url 集合[code]// 将每页的文章 url打乱

public static List randomUrlList(List oriListUrl) {

if (oriListUrl != null) {

int size = oriListUrl.size();

List randomList = new ArrayList(size);

int[] oriArray = new int[size];

for (int i = 0; i < size; i++) {

oriArray[i] = i;

}

for (int i = 0; i < size; i++) {

int random = new Random().nextInt(size - i);

int value = oriArray[random];

randomList.add(oriListUrl.get(value));

// note 随着i递增,当前最后一个数的位置会往前移

oriArray[random] = oriArray[size - i - 1];

oriArray[size - i - 1] = value;

}

return randomList;

}

return null;

}

输出访问 url 的工具类[code]public class StreamTool {

public static byte[] read(InputStream inputStr) throws Exception {

ByteArrayOutputStream outStr = new ByteArrayOutputStream();

// TODO Auto-generated method stub

byte[] buffer = new byte[1024];

int len = 0;

while ((len = inputStr.read(buffer)) != -1) {

String searchTitle = new String(buffer, "UTF-8");

if (searchTitle.contains("

Java 数组 声明 定义 传参数 - never_cxb的专栏")){

System.out.println(searchTitle);

}

outStr.write(buffer, 0, len);

}

inputStr.close();

return outStr.toByteArray();

}

}

输出信息

所用知识点总结Java 正则匹配获取页数

[code]

31条数据 共3页首页 上一页 1 2 3 下一页 尾页

对于这段html, 先用doc.select(".pagelist") 匹配出了class="pagelist"

再用link.select("span") 匹配了 31条数据 共3页

再用正则匹配出 共3页 中的页数3

Java 正则中, Matcher.group(0) 表示整个匹配的字符串, 而group(1) 则表示第一个括号内的匹配

注意一定在有Matcher.group(0) 前一定先调用 Matcher.find() ,不然会报java.lang.IllegalStateException: No match found

[code]doc = Jsoup.connect(pageUrl).userAgent("Mozilla").timeout(3000)

.get();

Elements links = doc.select(".pagelist");

Element link = links.first();

String text = link.select("span").text();

String pattern = new String("[^\\d]*(\\d+)[^\\d]*(\\d+)[^\\d]*");

// 创建 Pattern 对象

Pattern r = Pattern.compile(pattern);

Matcher m = r.matcher(text);

if (m.find()) {

return Integer.valueOf(m.group(2));

}

2.

http://www.lbrq.cn/news/1047781.html

相关文章:

  • 北京企业响应式网站建设/重庆seo主管
  • 重庆做网站建设公司哪家好/营销型外贸网站建设
  • 深圳品牌设计公司介绍/东莞seo优化案例
  • 佛山做网站公司有哪些/最新热点新闻事件素材
  • 太原网站开发模板/上海app定制开发公司
  • 网站内容怎么做备份/百度论坛
  • 做外贸需关注的网站/网络销售怎么干
  • vue.js做网站/刷外链工具
  • 汕头网站排名优化/电子商务网站建设多少钱
  • 盐城市住房和城乡建设局门户网站/关键词检测
  • 初学者做网站的软件/国内高清视频素材网站推荐
  • 帮别人做违法网站会判刑吗/做网站用什么软件好
  • 网站建设网络公司/什么公司适合做seo优化
  • 网站建设项目风险管理的主要内容/做一个简单的网站需要多少钱
  • 怎样利用网站做淘宝客/网站关键词seo费用
  • 郑州网站制作天强科技/亚马逊关键词排名提升
  • 谷歌平台推广/厦门百度关键词优化
  • 兼职开发网站开发/网络营销的目的是
  • (小企制作)自制/互联网关键词优化
  • 集团网站建设方案/哈尔滨百度搜索排名优化
  • 广州哪家网站建设最好/国内专业seo公司
  • 邢台网站制作哪里有/关键词查询的分析网站
  • 连云港网站关键词优化/成都网站seo
  • 怎样做编辑发到网站/关键词排名查询官网
  • 网站和小程序的区别/百度网盘免费下载
  • 深圳中企动力/成都高薪seo
  • wordpress邮件/郑州seo技术
  • 泉州有专门帮做网站的吗/哈尔滨网络优化推广公司
  • 网站建设编辑工作总结/北京最新疫情情况
  • 漂亮的学校网站模板下载/网站域名在哪里查询
  • [ MySQL 数据库 ] 多表关联查询
  • Python 属性描述符(描述符用法建议)
  • 书生浦语第五期-L1G4-InternLM 论文分类微调实践(XTuner 版)
  • 轻量化阅读应用实践:21MB无广告电子书阅读器测评
  • spring.config.import 不存在
  • 项目一系列-第4章 在线接口文档 代码模板改造