java爬取百度首页logo

  • 两个方法

    • 一个获得Url的网页源代码getUrlContentString,另外一个从源代码中得到想要的地址片段,其中需要用到正则表达式去匹配
  • 得到网页源代码的过程:

    • 地址为string,将地址转换为java中的url对象
    • url的openConnection方法返回urlConnection
    • urlConnection的connect方法建立连接
    • 新建一个InputStreamReader对象,其中InputStreamReader的构建需要InputStream输入流对象,而URLConnection的getInputStream方法则返回输入流对象,所以可以连接起来
    • 然后利用建立好的InputStreamReader对象建立BuffereReader对象
    • 从bufferedreader对象中按行读入网页源码,追加到result字符串中,result字符串即为网页源代码字符串
  • logo地址匹配

    • ?Pattern pattern = Pattern.compile(patternString);

      • java.util.regex:java类库包,用正则表达式所定义的模式对字符串进行匹配

        它包括两个类:Pattern和Matcher 。

        Pattern: 创建匹配模式字符串。

        Matcher:将匹配模式字符串与输入字符串。

      • pattern的compile方法:将指定的字符编译到模式中
    • Matcher matcher = pattern.matcher(contentString);

?
?


package com.test;

?
?

import java.io.*;

import java.net.*;

import java.util.regex.*;

?
?

public class baidulogo {

????static String getUrlContentString(String urlString) throws Exception {

????????String result = "";

????????URL url = new URL(urlString);

????????URLConnection urlConnection = url.openConnection();

????????urlConnection.connect();

????????InputStreamReader inputStreamReader = new InputStreamReader(

????????????????urlConnection.getInputStream(), "utf-8");

????????BufferedReader in = new BufferedReader(inputStreamReader);

????????String line;

????????while ((line = in.readLine()) != null) {

????????????result += line;

????????}

????????return result;

????}

?
?

????static String getLogoUrl(String contentString, String patternString) {

????????String LogoUrl = null;

????????Pattern pattern = Pattern.compile(patternString);

????????Matcher matcher = pattern.matcher(contentString);

????????if (matcher.find()) {

????????????LogoUrl = matcher.group(1);

????????}

????????return LogoUrl;

?
?

????}

?
?

????public static
void main(String[] args) throws Exception {

????????// 定义即将访问的链接

????????String urlString = "http://www.baidu.com";

????????String result = getUrlContentString(urlString);

????????String patternString = "src=\"(.+?)\"";

????????String contentString = result;

????????String logoUrl = getLogoUrl(contentString, patternString);

????????System.out.println(logoUrl);

????}

}

?

时间: 2024-10-31 23:53:09

java爬取百度首页logo的相关文章

java爬取百度首页源代码

爬虫感觉挺有意思的,写一个最简单的抓取百度首页html代码的程序.虽然简单了一点,后期会加深的. 1 package test; 2 3 import java.io.BufferedReader; 4 import java.io.InputStreamReader; 5 import java.net.URL; 6 import java.net.URLConnection; 7 8 public class Main 9 { 10 public static void main(Strin

第三百三十四节,web爬虫讲解2—Scrapy框架爬虫—Scrapy爬取百度新闻,爬取Ajax动态生成的信息

第三百三十四节,web爬虫讲解2-Scrapy框架爬虫-Scrapy爬取百度新闻,爬取Ajax动态生成的信息 crapy爬取百度新闻,爬取Ajax动态生成的信息,抓取百度新闻首页的新闻标题和rul地址 有多网站,当你浏览器访问时看到的信息,在html源文件里却找不到,由得信息还是滚动条滚动到对应的位置后才显示信息,那么这种一般都是 js 的 Ajax 动态请求生成的信息 我们以百度新闻为列: 1.分析网站 首先我们浏览器打开百度新闻,在网页中间部分找一条新闻信息 然后查看源码,看看在源码里是否有

python爬取百度搜索图片

在之前通过爬取贴吧图片有了一点经验,先根据之前经验再次爬取百度搜索界面图片 废话不说,先上代码 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2017/7/22 10:44 # @Author : wqj # @Contact : [email protected] # @Site : # @File : test.py # @Software: PyCharm Community Edition import requests

web爬虫讲解—Scrapy框架爬虫—Scrapy爬取百度新闻,爬取Ajax动态生成的信息

crapy爬取百度新闻,爬取Ajax动态生成的信息,抓取百度新闻首页的新闻rul地址 有多网站,当你浏览器访问时看到的信息,在html源文件里却找不到,由得信息还是滚动条滚动到对应的位置后才显示信息,那么这种一般都是 js 的 Ajax 动态请求生成的信息 我们以百度新闻为列: 1.分析网站 首先我们浏览器打开百度新闻,在网页中间部分找一条新闻信息 然后查看源码,看看在源码里是否有这条新闻,可以看到源文件里没有这条信息,这种情况爬虫是无法爬取到信息的 那么我们就需要抓包分析了,启动抓包软件和抓包

[PHP] 网盘搜索引擎-采集爬取百度网盘分享文件实现网盘搜索(二)

前情提要:最近使用PHP实现了简单的网盘搜索程序,并且关联了微信公众平台,名字是网盘小说.用户可以通过公众号输入关键字,公众号会返回相应的网盘下载地址.就是这么一个简单的功能,类似很多的网盘搜索类网站,我这个采集和搜索程序都是PHP实现的,全文和分词搜索部分使用到了开源软件xunsearch. 上一篇([PHP] 网盘搜索引擎-采集爬取百度网盘分享文件实现网盘搜索)中我重点介绍了怎样去获取一大批的百度网盘用户,这一篇介绍怎样获得指定网盘用户的分享列表.同样的原理,也是找到百度获取分享列表的接口,

Python爬虫实战二之爬取百度贴吧帖子

大家好,上次我们实验了爬取了糗事百科的段子,那么这次我们来尝试一下爬取百度贴吧的帖子.与上一篇不同的是,这次我们需要用到文件的相关操作. 前言 亲爱的们,教程比较旧了,百度贴吧页面可能改版,可能代码不好使,八成是正则表达式那儿匹配不到了,请更改一下正则,当然最主要的还是帮助大家理解思路. 2016/12/2 本篇目标 1.对百度贴吧的任意帖子进行抓取 2.指定是否只抓取楼主发帖内容 3.将抓取到的内容分析并保存到文件 1.URL格式的确定 首先,我们先观察一下百度贴吧的任意一个帖子. 比如:ht

爬取唯品会首页商品分类及链接

很久之前做的东西.一直没时间分享,今天有空正好分享出来. 想做个爬取唯品会首页的商品分类和链接的脚本.第一反应是用BeautifulSoup.但是在浏览器里调试了很久没有发现链接,无奈只能放弃了使用BeautifulSoup. 尝试了抓包,我们看看下面是抓到的包: 通过多次的抓取,终于抓到了两个接口.然后点击查看两个接口中我们抓到的headers 我们可以很清楚的看到,两个接口除了ids这个字段的值不一样,其他的东西都是一样的.我们可以双击打开这两个接口,就会发现里面返回的内容正好是我们想要的东

Python开发简单爬虫(二)---爬取百度百科页面数据

一.开发爬虫的步骤 1.确定目标抓取策略: 打开目标页面,通过右键审查元素确定网页的url格式.数据格式.和网页编码形式. ①先看url的格式, F12观察一下链接的形式;② 再看目标文本信息的标签格式, 比如文本数据为div class="xxx", ③ 容易看到编码为utf-8 2.分析目标 目标: 百度百科python词条 入口页: http://baike.baidu.com/item/Python词条页面url格式:/item/**** 数据格式: 标题: <dd cl

requests+xpath+map爬取百度贴吧

1 # requests+xpath+map爬取百度贴吧 2 # 目标内容:跟帖用户名,跟帖内容,跟帖时间 3 # 分解: 4 # requests获取网页 5 # xpath提取内容 6 # map实现多线程爬虫 7 import requests 8 from requests.exceptions import RequestException 9 from lxml import etree 10 import json 11 from multiprocessing.dummy imp