java爬虫中如何判断两个URL是否属于同一网站

问题描述

java爬虫中如何判断两个URL是否属于同一网站

如何判断两个URL是否属于同一网站,爬虫中要剔除站外链接,应该要怎么做,两个url主域名不一样但属于同一网站,应该通过什么进行判断

解决方案

 String url = "http://ask.csdn.net/questions/237143";
Pattern p = Pattern.compile("(?<=http://|\.)[^.]*?\.(com|cn|net|org|biz|info|cc|tv)",Pattern.CASE_INSENSITIVE);
Matcher matcher = p.matcher(url);
matcher.find();
System.out.println(matcher.group()); // csdn.net

解决方案二:

我就说个建议:正则解析进入主域名 获取网站真实IP 对比两个IP是否相同 关于获取ip我记得有那么个方法 但是忘了具体的实现了 你可以查查

时间: 2025-01-02 09:28:52

java爬虫中如何判断两个URL是否属于同一网站的相关文章

算法 正则 java 交集-求算法 判断两个正则表达式是否存在交集

问题描述 求算法 判断两个正则表达式是否存在交集 求算法 判断两个正则表达式是否存在交集,最好java的 十分感谢

获取java线程中信息的两种方法

在进行多线程编程中,比较重要也是比较困难的一个操作就是如何获取线程中的信息.大多数人会采取比较常见的一种方法就是将线程中要返回的结果存储在一个字段中,然后再提供一个获取方法将这个字段的内容返回给该方法的调用者.如以下的ReturnThreadInfo类: package threadtest1; /** * * @author shi mingxiang */ public class ReturnThreadInfo extends Thread { private String str; p

在ORalce 中,怎么判断两个时间段之间是否有交集, 编写的一个函数.

函数 判断2个时间段是否有交集的函数,开始是在我计算考勤的时候有用过,后来发现用到的地方越来越多,  丢个砖头 9i 下通过. 两个时间段 之间是否有交集  intime---outtimefromdate--todate 如果有交集,则返回1,否则返回0*/create or replace function func_IsTimeCross(intime in date, outtime in date,fromdate date , todate date ) return number

使用Java类库判断两台机器之间网络是否可达

在网络编程中,有时我们需要判断两台机器之间的连通性,或者说是一台机器到另一台机器的网络可达性.在系统层面的测试中,我们常常用 Ping 命令来做验证.尽管 Java 提供了比较丰富的网络编程类库(包括在应用层的基于 URL 的网络资源读取,基于 http://www.aliyun.com/zixun/aggregation/29912.html">TCP/IP 层的 Socket 编程,以及一些辅助的类库),但是没有直接提供类似 Ping 命令来测试网络连通性的方法.本文将介绍如何通过 J

java中怎么判断一行字符中有姓名,并得到姓名

问题描述 java中怎么判断一行字符中有姓名,并得到姓名 例如:[杨绛先生今日凌晨去世,享年105岁[蜡烛]]5月25日凌晨,著名女作家.文学翻译家和外国文学研究家.钱锺书夫人杨绛在北京协和医院病逝,享年105岁.澎湃新闻经由人民文学出版社对这一消息进行了确认. 怎么从中得到杨绛,钱钟书 解决方案 这个涉及到语义分析了,一般来说是对中文分词,然后对照词典,根据百家姓找没有列出的词,以姓氏开头2-3个字符长度. 解决方案二: 个人认为:收集全部姓名是不可能的:再者可以收集先生 小姐 夫人之类的:再

java 集合问题找出两个集合中相同的元素并打印出来

问题描述 java 集合问题找出两个集合中相同的元素并打印出来 把1-100 数随机放入到 数组长度为[97] 并且这些元素不能重复,找出未输入进数组的数! 解决方案 package set; import java.util.HashSet; /* 作业: 把1-100 数随机不重复放入到 数组[97] ,找出未存入的数! */ public class Test5 { public static void main(String[] args) { // 1.创建 一个 HashSet集合,

JavaScript中判断两个字符串是否相等的方法_基础知识

先将用户的输入值全部转换为大写(或小写),然后再行比较: var name = document.form1.txtUserName.value.toLowerCase(); if(name == "urname") { // statements go here. }       JavaScript有两种相等运算符.一种是完全向后兼容的,标准的"==",如果两个操作数类型不一致,它会在某些时候自动对操作数进行类型转换,考虑下面的赋值语句: var strA =

java多线程中两个容器之间的同步

问题描述 java多线程中两个容器之间的同步 写了一个多线程的爬虫(对多线程不熟悉),但是每次队列中都有重复的元素,我把代码逻辑贴上来,大家帮我看一下,谢谢了: 在进程中: queue = LinkedBlockingQueue set = ConcurrentSkipListSet 在每个进程中使用了bfs bfs: while(!queue.empty()){ s = queue.poll() //...逻辑代码 set.add(s) //对s所有子状态扩展 for(son : s.sons

java中hasNextInt判断后无限循环输出else项的解决方法_java

话不多说,上来就是干! ?12345678910111213141516171819202122232425262728293031323334353637 import java.util.Scanner; public class Test_hasNextInt { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new