我的想法是根据关键字拼接百度和谷歌的URL然后连接获得页面,但是得到的是页面源代码。
但是一页显示不了一百条记录啊 那是不是还有分页才能获取 怎么判断已经得到了100条记录呢?
有没人有具体点的算法?

解决方案 »

  1.   

    百度会对你查询后的关键字做处理,比如你查询“哈哈”,它提交之后是这种连接
    http://www.baidu.com/s?bs=%C5%AE%C8%CB&f=8&wd=%B9%FE%B9%FE
    你要是知道百度是通过什么算法转化的不如告诉我下,或者其他牛人告诉也行~~这个是查询“哈哈”之后第四页的连接http://www.baidu.com/s?wd=%B9%FE%B9%FE&pn=30&usm=2
    "pn=30"来控制是第几页,每页显示10条数据,所以pn=90就是第十页关于得到记录,你可以读取网页源代码,写个正则,抓取想要的链接href="http://www.haha1.com/"  target="_blank" ><font size="3"><em>哈哈</em>蚁在线音乐</font></a><br
    关键字是放在<em>标签里的,抓取后还得replacall来做替换总体来说不好做,主要就是关键字转化的问题,谁知道是怎么转化的?
      

  2.   

    你说的是不是中文编码的问题 这个JDK的net包里有专门的类可以直接编码跟解码。
    现在关键的问题是不知道怎么处理获得的页面源代码。来获取标题内容
      

  3.   

    baidu java.net.URLEncoder.encode(string,"GB2312");
    google java.net.URLEncoder.encode(string,"UTF-8");
      

  4.   

    http://www.baidu.com/s?bs=%C5%AE%C8%CB&f=8&wd=%B9%FE%B9%FE
    你要是知道百度是通过什么算法转化的不如告诉我下这个使用的是javascriipt的函数encodeURIComponent
      

  5.   

    百度的URL:http://www.baidu.com/s?tn=site888_pg&wd=a(wd参数就是关键字)
    还有个参数pn=10就是第10到20条 依次类推 有没有一次获取100条的
      

  6.   

    搜索结果可以使用Jsoup分析。
    Jsoup现在支持CSS风格的选择。
    Elements rs = doc.select("h3.r > a.l"); // google.com
      

  7.   

    我能根据关键字构造URL 能 获得URL的页面源代码但是不知道具体怎样解析出100条记录的标题。我看了一下百度里有个设置可以每页显示100条记录,肯定有个参数可以控制,这样就可以获得每页显示100条结果的页面了。
    然后就只剩下解析出搜索结果的标题了。
      

  8.   

    本来是想学习一下HTMLParser的 看到Jsoup貌似更强大。
      

  9.   

    每页100比默认的10 。 url 多了 
    google.com &num=100
    baidu.com &rn=100
      

  10.   

    楼主..你的多加强动手能力了我刚才设置了一下每页显示100条数据,就是多了一个字段来控制,你只要在搜索的url后面加上&rn=100就能查找出100条数据了Jsoup的确很强大,不过我现在还是多用自己手写几个小正则来解决~~比如查找你说的搜索出来网页源代码里的标题,我就用这个
    regx = "<font size=\"3\">.*?</font>";虽然有点取巧吧~~顺便说一句.*?真的很强大~
      

  11.   


    // 百度结果
    Elements elements = doc.select("td.f > a");
    for(Element link : elements){
        System.out.println(link.text());
        System.out.println(link.attr("href"));
    }
    // Google结果
    Elements elements = doc.select("h3.r > a.l");
    for(Element link : elements){
        System.out.println(link.text());
        System.out.println(link.attr("href"));
    }
      

  12.   

    怎么感觉有点像RSS抓取页面信息,楼主可以去关注下RSS,他可以做这方面的工作