通过搜索关键和页码字进入百度,例如“http:
找到真正有用的那一行,把信息读出来,
按照每一个项的特点把他们切开,例如URL前面都有“
class
=f”……
然后存起来
下面是代码:
package org.qisou;
import java.io.*;
import java.net.*;
public
class
CatchBaidu {
private
String strKey;
private
String[] info;
private
String source;
private
SearchItem[] ItemList;
public
CatchBaidu(String strKey,
int
pages){
this
.strKey=strKey;
pages=(pages-1)*10;
this
.ItemList =
new
SearchItem[10];
this
.source=Socket(
this
.source);
info =
new
String[40];
this
.GetBaidu();
}
public
CatchBaidu(String strKey){
this
.strKey=strKey;
this
.ItemList =
new
SearchItem[10];
this
.source=Socket(
this
.source);
info =
new
String[40];
this
.GetBaidu();
}
public
String Socket(String strPage){
String strServer=
"www.baidu.com"
;
String s=
null
;
try
{
String hostname = strServer;
int
port = 80;
InetAddress addr = InetAddress.getByName(hostname);
Socket socket =
new
Socket(addr, port);
BufferedWriter wr =
new
BufferedWriter(
new
OutputStreamWriter(socket.getOutputStream(),
"UTF8"
));
wr.write(
"GET "
+ strPage +
" HTTP/1.0 "
);
wr.write(
"HOST:"
+ strServer +
" "
);
wr.write(
" "
);
wr.flush();
BufferedReader rd =
new
BufferedReader(
new
InputStreamReader(socket.getInputStream()));
String line;
while
(
true
) {
line = rd.readLine();
if
(line.length()>=75){
if
(line.startsWith(
"<table border="
0
" cellpadding="
0
" cellspacing="
0
"><tr><td class=f><a href="
")){
s=line;
break
;
}
}
}
wr.close();
rd.close();
}
catch
(Exception e) {
System.
out
.println(e.toString());
}
return
s;
}
public
String ClearOnce(String s){
int
first;
int
last;
first = s.indexOf(
"<"
);
last = s.indexOf(
">"
);
StringBuilder builder =
new
StringBuilder(s);
builder.delete(first,last+1);
return
builder.toString();
}
public
String Clear(String s){
while
(s.indexOf(
">"
)>0&s.indexOf(
">"
)<s.length()){
s=
this
.ClearOnce(s);
}
return
s;
}
public
String ClearK(String s){
return
s.substring(0,s.indexOf(
"- "
));
}
public
String GetUrl(String s){
int
first;
int
lest;
if
((first=s.indexOf(
"class=f"
))!=-1){
lest=s.indexOf(
""
target");
s=s.substring(first+17,lest);
return
s;
}
else
return
""
;
}
public
void
GetBaidu(){
int
br;
for
(
int
i=0;i<40;i++){
br=
this
.source.indexOf(
""
);
info[i]=
this
.source.substring(0,br);
this
.source=
this
.source.substring(br+4,
this
.source.length());
}
for
(
int
i=0;i<40;i++){
if
((i+1)%4==1){
info[i+3]=GetUrl(info[i]);
}
info[i]=Clear(info[i]);
if
((i+1)%4==3){
info[i]=ClearK(info[i]);
}
}
for
(
int
i=0;i<10;i++){
int
j=i*4;
SearchItem item =
new
SearchItem(info[j],info[j+3],info[j+1],info[j+2]);
this
.ItemList[i]=item;
}
}
public
SearchItem[] GetBaiduItemList(){
return
ItemList;
}
public
static
void
main(String[] args){
CatchBaidu obj =
new
CatchBaidu(
"forest"
,4);
SearchItem[] itemlist = obj.GetBaiduItemList();
for
(
int
i=0;i<10;i++){
itemlist[i].print();
}
}
}
.
package org.qisou;
public
class
SearchItem {
private
String title;
private
String URL;
private
String synopsis;
private
String info;
public
String GetTitle(){
return
title;
}
public
String GetURL(){
return
URL;
}
public
String GetSynopsis(){
return
synopsis;
}
public
String GetInfo(){
return
info;
}
public
SearchItem(String title ,String URL ,String synopsis ,String info){
this
.title=title;
this
.URL=URL;
this
.synopsis=synopsis;
this
.info=info;
}
public
SearchItem(){
}
public
void
print(){
System.
out
.println(
this
.GetURL());
System.
out
.println(
this
.GetTitle());
System.
out
.println(
this
.GetSynopsis());
System.
out
.println(
this
.GetInfo());
}
public
static
void
main(String[] args) {
SearchItem obj =
new
SearchItem(
"title"
,
"URL"
,
"synopsis"
,
"info"
);
obj.print();
}
}
分享到:
相关推荐
准正交码字搜索在无线通信领域中是一个关键的技术,特别是在多小区环境下,为了实现高效、准确的信道估计和信息传输。准正交码字(Quasi-Orthogonal Sequence)是一种特殊的序列设计,它在一定程度上实现了码字间的...
总的来说,大神码字软件通过集成多文档编辑和强大的随机起名工具,为文学创作者提供了一个高效、便捷的创作环境。配合其内部组件,软件能够无缝对接Word,确保文档兼容性和编辑质量。对于那些在创作过程中需要大量...
"小黑屋码字软件"是一款专为写作爱好者和专业作者设计的应用,旨在提升写作效率,帮助用户专注于创作,避免因各种干扰因素导致的效率低下。这款软件的主要特点包括防止偷懒、防止分心、防止游戏以及其他可能分散注意...
标题中的“大神码字及注册机”表明我们讨论的是一个专为网络小说作者设计的码字软件,可能包括其源代码以及一个注册机。这个软件的主要目标是帮助作者高效、安全地创作文字,尤其在网络小说领域。让我们深入探讨一下...
最近更新:2013年4月1号,码字大神强制码字软件推出 V2.1 更新版本,主要更新如下: 重新设计编辑器,丰富编辑器功能,增加文字加粗、倾斜、加底色、改颜色及是否换行等等贴心功能。 重点修改了编辑器的保存模式...
码字表是PDF417条码编码的关键,它定义了字符与二进制码字的对应关系。每个字符由5个条和5个空组成,共10个模块,这10个模块被分为两组,每组5个,称为左侧码字和右侧码字。左侧码字对应数据的高四位,右侧码字对应...
"小黑屋强制码字软件"是一款专为写作爱好者和专业作者设计的高效码字工具,旨在提供一个无干扰、高效率的创作环境。这款软件以其独特的功能和人性化的设计赢得了广泛的赞誉,尤其对于那些需要长时间专注写作的用户,...
在这个“ps2键盘—码字接收”的项目中,我们将探讨如何在Quartus 7.2这个硬件描述语言(HDL)开发环境中,使用Verilog语言实现一个PS/2键盘的码字接收和转换为ASCII码的程序。 首先,我们需要理解PS/2接口的工作...
大神码字软件是一款优秀的国产写作码字软件,拥有全面的文本编辑和写作辅助功能,包括完善的文稿保存方案、卓越的虚拟分卷模式、多彩的界面,支持锁定开关功能,并且与同类国外码字软件相比,对中文的支持更好,需要...
超级码字是一款便携式的码字工具,软件适合网络作家使用,软件具有Word式的码字模式,拥有自动保存、手动保存、以及自动备份、定时备份、回车备份和胶囊备份、云ftp服务器备份、本地FTP服务器备份等功能,需要的朋友...
文字工作者们有的是拖延症患者,软件能给你外界压力固然能起到提醒和一定的约束作用,时间管理仍应基于对心态和工作方式的调整。运用软件的特定功能来改善某些行为、提高工作效率,确实是可能的,也值得鼓励。 三毛...
Markdown 编辑器是程序员和内容创作者们喜爱的工具,因其简洁、高效的语法而备受推崇。"码字 md" 正是一款专为用户提供干净、精致体验的 Markdown 编辑器,旨在让撰写文档变得更加轻松愉快。这款编辑器采用 ...
而软件的真正亮点在于“时间锁”和“催稿锁”,即在运行软件时先设定锁定的时间或者字数,在达到已设定的时间或字数之前,用户无法退出这款软件,也无法打开网页、运行游戏,甚至不能强制关机,再资深的 “拖延症...
非常好用的郑码字根表,你试试看就知道了。其他的郑码资源有机会再上传。
通过"码字练习器",用户可以在日常使用中不断锻炼和提升打字技巧,从而提高工作效率。而"Typing.py"作为其核心代码,是实现这些功能的关键所在。理解并分析这个Python文件,有助于我们深入学习Python编程,特别是GUI...
小黑屋码字
所以系统设置了阅览模式和分卷模式的转换,您可以随时进入阅览模式,您也可以随时进入编辑模式。 当然进入阅览模式时,为了系统的轻便,您是不能编辑的。 一键排版 只按一个键,便可以将您的文档整理成网络...