安全解决方案:java怎么使用百度搜索引擎_Java爬虫怎么调用百度搜索引擎

优采云 发布时间: 2022-09-23 23:05

  安全解决方案:java怎么使用百度搜索引擎_Java爬虫怎么调用百度搜索引擎

  该楼层涉嫌违规已被系统折叠隐藏查看该楼层

  

  包com.wjd.baidukey.crawler;导入 java.io.ByteArrayInputStream;导入 java.io.FileOutputStream;导入 java.io.IOException;导入 .URLEncoder;导入java.sql.Connection;导入 java.sql.DriverManager ;导入 java.sql.PreparedStatement;导入java.sql.ResultSet;导入java.sql.SQLException;导入 java.sql.Statement;导入 java.text.SimpleDateFormat;导入 java.util.Date;导入 java.util.HashMap;导入 java.util.TimeZone;导入 org.apache.poi.poifs.filesystem.DirectoryEntry;导入 org.apache.poi.poifs.filesystem.POIFSFileSystem;导入 org.jsoup.nodes.Element;导入 org.jsoup.select.Elements ;导入.hfut.dmic.contentextractor.ContentExtractor;导入.hfut.dmic.webcollector.model.CrawlDatum;导入.hfut.dmic.webcollector.model.CrawlDatums;导入.hfut.dmic.webcollector.model.Page;导入 .hfut .dmic.webcollector.plugin.ram.RamCrawler;公共类 BdiduKeywordCrawler 扩展 RamCrawler{ 私有连接连接;私人 PreparedStatement pstatement; // 连接MyS ql数据库,用户名root,密码mahao String url = "jdbc:mysql://localhost:3306/wjd";字符串用户名=“根”;字符串密码 = "mahao"; //保存提取的数据 StringBuilder result = new StringBuilder(); public BdiduKeywordCrawler(String keyword, int maxPageNum) throws Exception { for (int pageNum = 1; pageNum h3>a Elements results = page.select("div[class=result c-container ]>h3>a" ); // 元素results1 = page.select("div[class=result-op c-container xpath-log]>h3>a");//,div[id=result-op c-container xpath-log] >h3>a / /System.out.println(results1.get(0)); //results.add(results1.get(0)); for (int rank = 0; rank < results.size(); rank++) { element result = results.get(rank); /* * 我们要继续爬取每个搜索结果指向的网页,这里统称为外部链接。

  * 我们希望我们在访问外链的时候仍然能够知道外链在搜索引擎中是哪个页面和哪个item,*所以把页码和排序信息放到后面的C​​rawlDatum中,以便能够区分the external link from * 对于搜索引擎结果页面,我们将其pageType设置为outlink,这里的值完全由用户定义,可以设置任意值。 * 在经典爬虫中,每个网页都有一个refer信息,表示当前网页的链接来源。 * 比如我们先访问新浪首页,然后从新浪首页解析出新的新闻链接, * 这些页面的refer值都是新浪首页。 WebCollector不直接保存refer值,*但是我们可以通过如下方式将refer信息保存在metaData中,达到同样的效果。 * 经典爬虫中锚文本的存储也可以通过以下方式实现。 * 在某些需求中,想要获取当前页面在遍历树中的深度。使用元数据很容易实现这个功能。将 CrawlDatum 添加到 next 时,将其深度设置为当前访问页面的 depth+1。 */ CrawlDatum datum = new CrawlDatum(result.attr("abs:href")) .putMetaData("keyword", keyword) .putMetaData("pageNum", pageNum + "") .putMetaData("rank", rank + " ") .putMetaData("pageType", "outlink") .putMetaData("depth", (depth + 1) + "") .putMetaData("refer", page.getUrl()); next.add( datum); } } else if (pageType.equals("outlink")) { /*int pageNum = Integer.valueOf(page.getMetaData("pageNum")); int rank = Integer.valueOf(page.getMetaData("rank ")); String refer = page.getMetaData("refer");*/ try { String content = ContentExtractor.getContentByUrl(page.getUrl()); /*String line = String.format("Page %s %s 结果: title: %s(%s bytes)\tdepth=%s\trefer=%s", pageNum, rank + 1, page.getDoc().title(), content, depth, refer);* / String line = String.format("Title: %s\nSource: %s\nText: %s", page.getDoc().title(),page.getUrl(),content); HashMap data = new HashMap(); Date currentDate = new java.util.Date(); SimpleDateFormat myFmt = new SimpleDateFormat("yyyy 年 MM 月 dd 日 HH:m m:ss"); TimeZone timeZoneChina = TimeZone.getTime eZone("Asia/Shanghai");// 获取中国时区 myFmt.setTimeZone(timeZoneChina);// 设置系统时区 String grabTime = myFmt.format(currentDate);// new Date() 是获取当前系统时间数据。 put("标题", page.getDoc().title()); data.put("来自", page.getUrl()); data.put("内容", 内容); data.put("grabTime" , grabTime); //String line = String.format("Title: %s\n", page.getDoc().title()); //坚持到word文档//它是线程安全的吗? ? ? //synchronized(this) { String destFile = "D:\\"+"Result"+keyword+".doc";结果.append(line); //将结果写入doc文件 write2File(destFile,result.toString ()); //添加到数据库 addResultData(data); //} System.out.println(line); } catch (Exception e) { //e.printStackTrace(); System.out.println("链接"+page.getUrl()+"无效"); } } } //保存数据到mysql数据库 private void addResultData(HashMap data) { String title = data.get("title");字符串 source_url = 数据。从获得”); String content = data.get("content").replaceAll("\\?{2,}", "");//去掉字符串中多个连续的问号。

  

  //抓取时间 String grabTime = data.get("grabTime"); /*SimpleDateFormat 格式 = new SimpleDateFormat("yyyy 年 MM 月 dd 日 HH:mm:ss");日期日期=空;尝试 { date = format.parse(grabTime); } 捕捉(异常 e){ e.printStackTrace(); }*/ //System.out.println("抓取时间"+grabTime);尝试{连接= DriverManager.getConnection(网址,用户名,密码); String sql = "INSERT INTO wjd_keyword_search_table(TITLE,GRAP_TIME,CONTENT,SOURCE_URL) VALUES(?,?,?,?)"; String checkSql = "select 1 from wjd_keyword_search_table where TITLE='" + title + "'";语句语句 = connection.prepareStatement(checkSql); ResultSet 结果 = statement.executeQuery(checkSql); if (!result.next()) { // 如果该记录在数据库中不存在,则将其添加到数据库中 pstatement = connection.prepareStatement(sql); pstatement.setString(1, 标题); //pstatement.setString(2, date); pstatement.setString(2,grabTime); pstatement.setString(3, 内容); pstatement.setString(4, source_url); pstatement.executeUpdate(); } } catch (SQLException e) { e.printStackTrace(); } } /** * 将数据持久化到本地 doc 文件 * @param destFile * @param line */ private void write2File(String destFile, String line) { try { //doc content ByteArrayInputStream bais = new ByteArrayInputStream(line.getBytes() ); POIFSFileSystem fs = new POIFSFileSystem(); DirectoryEntry 目录 = fs.getRoot(); directory.createDocument("WordDocument", bais); FileOutputStream ostream = new FileOutputStream(destFile); fs.writeFilesystem(ostream); bais.close(); ostream .close(); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) throws Exception { String[] keywordsList = {"web crawler","search engine"}; int pageToal = 5; for(字符串关键字:keywordsList){BdiduKeywordCrawler爬虫=新BdiduKeywordCrawler(关键字,pageToal);爬虫.start(); } } /** * 根据关键词和页码拼接对应的百度搜索URL */ public static String createUrl(String keyword, int pageNum) throws Exception { int first = (pageNum-1) * 10;keyword = URLEncoder.encode(keyword, "utf-8"); return String.format("", keyword, first); } }

  解决方案:网站SEO优化方法(搜索引擎优化的意义)

  近年来,随着互联网的飞速发展,每个企业都有自己的公司网站。如果他们想通过SEO网站优化在搜索引擎中获得一席之地,那么网站建设如何启动呢?SEO优化怎么样?这也是很多企业想要达到的目标。事实上,很多公司没有专业的SEO优化团队,甚至对搜索引擎优化一无所知。网站排名优化只能外包给第三方公司,因为,SEO优化与企业网站和企业的效率息息相关,所以企业实施SEO优化是很有必要的。如何优化SEO网站,我们来说说网站@网站seo优化的五种方法。

  首先是企业建设之初的结构设计网站

  网站施工中要避免过度使用flash,因为flash对网站的加载速度极慢,而且需要插件运行游,各大搜索引擎无法识别flash,而*敏*感*词*效果可以通过css3来实现,网站排版布局应该用div+css来完成,不仅加载速度快,而且对搜索引擎也比较友好。

  由于这个布局是小块加载的,在用户体验方面也是非常不错的,也提高了网站的速度,另外网站的URL路径设计应该是静态的或者伪静态的, 这样搜索引擎的蜘蛛在爬取的时候也会更加流畅。

  没有。二、选择正确的关键字网站

  企业网站在建设初期,一定要慎重、慎重、审慎确定网站关键词。如果业务主要服务本地企业,网站关键词必须本土化(如昆明网站建筑、昆明网站生产、昆明网站设计、昆明&lt; @网站优化等),一般来说优化主要是关键词是最难的,可以从长尾关键词入手,这样不仅可以增加内容网站,同时也增加了网站的权重,带来更精准的流量。&gt;Master关键词也有很大的配角。

  没有。三、 围绕主要关键字更新内容

  一旦网站master关键词被选中,master关键词就会成为网站优化的重点,所以更新网站的时候一定要重点关注这些内容主要是关键词写原创文章,一般原创文章写比较难,可以试试伪原创

  

  撰写原创时,可以从最新的热点话题和最新资讯中提取内容,每天都需要更新不同的内容,包括企业文化、公司新闻、行业资讯、技术文件和产品等。 ,永远保证网站的活力和新鲜感。

  四、 规划关键字部分的外部链接

  这里我们重点关注锚文本链接,因为高质量的锚文本链接对于网站优化排名有很多好处,锚文本可以吸引搜索引擎蜘蛛抓取网站,并且赋予更高的权重,权重网站增加了,网站关键词的排名自然会更高。

  建立外部链接的有效方法是与同行交换友情链接或购买友情链接。还要控制每天更新的外链数量,每天不断更新博客,不断在论坛发帖。外部链接是有效增加网站 权重的方式。

  没有。五、不管多难,不断更新网站的内容

  企业网站要想做好SEO优化,就必须坚持更新网站的原创的内容。企业需要有专职的编辑人员负责更新网站的内容,以保证网站的更新速度、活力和稳步发展。

  新的SEO,未来的价值

  搜索引擎优化一直是两个部分 - 页面外搜索引擎优化和页面外搜索引擎优化。但在熊猫更新之前,很少有人关注页面搜索引擎优化。这是因为,通过足够的页外工作(主要是反向链接构建),几乎可以对任何关键字进行排名。但是,众所周知,这一切都变了。

  搜索者在寻找什么?

  

  每当您在 Google 上搜索某些内容时,您都希望获得与您的搜索词最接近的结果。所以,如果你搜索“外贸建站”,其实就是在搜索一个电商出海平台——麦进斗出海。

  作为互联网营销人员、SEO 或在线*敏*感*词*,关键是了解您的市场。知道谁在寻找您的 网站 以及他们在寻找什么。如果您能识别这一点,您将确切知道在他们点击页面时为他们提供什么类型的 网站!

  那么你将如何脱颖而出?

  谷歌为我们提供了几种区分我们的方法。谷歌新的“可信商店”计划是一种方式。控制 网站 对搜索者的显示方式很容易。那就去做吧!加倍努力,拉起你的清单。从长远来看,它会得到回报。但同样重要的是,我们处于社交时代!社交媒体是企业的面包和黄油。最成功的企业是那些将社交媒体正确整合到营销活动中的企业。

  因此,无论何时发布 文章,无论何时更新……确保它是可共享的。采取主动并在 Reddit 上分享。获得大量流量比以往任何时候都容易。但你必须为此做好准备!所以页面搜索引擎优化是活得很好。但这与以前有些不同。不是通过“旧 SEO”的镜头来看待它——即专注于关键字和“SEO 内容”——而是通过“新 SEO”的镜头。

  2015 年 SEO 发生了很多变化,预计 2016 年也会发生同样多的变化,甚至更多。为了跟上不断变化的 SEO 策略,营销人员需要专注于他们的目标受众。

  Facebook 曾经是年轻观众的社交营销强国,但今天这种情况正在慢慢改变。年轻的社交网络用户已经开始从 Facebook 上消失,现在正涌向其他 网站,例如 Instagram、Pinterest、Twitter、Google+ 和 LinkedIn,它们都为 SEO 活动提供价值,但很大程度上取决于您的目标是谁,即哪个网站 更有效。掌握 SEO 趋势对于创建成功的企业至关重要;许多人正在聘请营销专家来指导他们通过所有这些变化朝着正确的方向前进。不要被所有的变化吓倒,拥抱它们。如果您不能自己处理这一切,那么获得您需要的帮助并不丢人,从长远来看,它实际上可以为您节省数千次营销工作。

  变化不是突然的,也不是突然的;他们已经向这个方向倾斜了一段时间。过去几年 Google 的所有更新都集中在逐步淘汰欺诈性 网站、消除反向 SEO 做法以及创建更相关的搜索结果。可以肯定的是,这些变化预计将继续朝着有机 SEO 实践发展。因此,请坚持质量,关注用户的需求,并继续提供相关且信息丰富的内容来回答他们的问题并满足他们的需求!

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线