通過httpclient來爬取網(wǎng)站內(nèi)容,分析當(dāng)前內(nèi)容頁中的圖片‘規(guī)則’

目前創(chuàng)新互聯(lián)公司已為近千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、網(wǎng)站托管、服務(wù)器租用、企業(yè)網(wǎng)站設(shè)計、棲霞網(wǎng)站維護(hù)等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
抓取一般都是模擬瀏覽器訪問目標(biāo)網(wǎng)頁,通過返回的頁面html代碼進(jìn)行分析自己需要的數(shù)據(jù)
查找規(guī)則,例如你爬取的網(wǎng)頁 ,看到當(dāng)前頁面顯示的圖片格式如下img src=""
通過解析爬取的網(wǎng)頁源代碼(html)進(jìn)行字符串的操作即可,現(xiàn)在有相應(yīng)的第三方j(luò)ar包可以幫你更快的完成這部分工作,例如htmlpaser,獲取到對應(yīng)的地址,然后進(jìn)行保存或下載。
你可以搜索,java爬蟲(httpclient)和htmlpaser做更多的了解。
希望能幫到你 . . . 這個可以解決你的問題 但是沒有樣式的.只是爬了源代碼
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
public class WebPageSource {
public static void main(String args[]){
URL url;
int responsecode;
HttpURLConnection urlConnection;
BufferedReader reader;
BufferedWriter writer;
String line;
try{
//生成一個URL對象,要獲取源代碼的網(wǎng)頁地址為:
url=new URL("");
//打開URL
urlConnection = (HttpURLConnection)url.openConnection();
//獲取服務(wù)器響應(yīng)代碼
responsecode=urlConnection.getResponseCode();
if(responsecode==200){
//得到輸入流,即獲得了網(wǎng)頁的內(nèi)容
reader=new BufferedReader(new InputStreamReader(urlConnection.getInputStream(),"GBK"));
writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File("d://test.txt"))));
while((line=reader.readLine())!=null){
writer.write(line);
writer.newLine();
}
}
else{
System.out.println("獲取不到網(wǎng)頁的源碼,服務(wù)器響應(yīng)代碼為:"+responsecode);
}
}
catch(Exception e){
System.out.println("獲取不到網(wǎng)頁的源碼,出現(xiàn)異常:"+e);
}
}
}
使用jsoup解析到這個url就行,dom結(jié)構(gòu)如下:
look-inside-cover類只有一個,所以直接找到這個img元素,獲取src屬性,就可以獲取到圖片路徑。
代碼實(shí)現(xiàn)如下:
Document?doc?=?Jsoup.connect("").get();
Elements?imgs?=?doc.select(".look-inside-cover");
String?imgUrl?=?imgs.get(0).attr("src");
jsoup的jar包分享給你:
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
import java.util.*;
import java.util.regex.*;
import javax.swing.*;
import javax.swing.table.*;//一個Web的爬行者(注:爬行在這里的意思與抓取,捕獲相同)
public class SearchCrawler extends JFrame{
//最大URL保存值
private static final String[] MAX_URLS={"50","100","500","1000"};
//緩存robot禁止爬行列表
private HashMap disallowListCache=new HashMap();
//搜索GUI控件
private JTextField startTextField;
private JComboBox maxComboBox;
private JCheckBox limitCheckBox;
private JTextField logTextField;
private JTextField searchTextField;
private JCheckBox caseCheckBox;
private JButton searchButton;
//搜索狀態(tài)GUI控件
private JLabel crawlingLabel2;
private JLabel crawledLabel2;
private JLabel toCrawlLabel2;
private JProgressBar progressBar;
private JLabel matchesLabel2;
//搜索匹配項(xiàng)表格列表
private JTable table;
//標(biāo)記爬行機(jī)器是否正在爬行
private boolean crawling;
//寫日志匹配文件的引用
private PrintWriter logFileWriter;
//網(wǎng)絡(luò)爬行者的構(gòu)造函數(shù)
public SearchCrawler(){
//設(shè)置應(yīng)用程序標(biāo)題欄
setTitle("搜索爬行者");
//設(shè)置窗體大小
setSize(600,600);
//處理窗體關(guān)閉事件
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
actionExit();
}
});
//設(shè)置文件菜單
JMenuBar menuBar=new JMenuBar();
JMenu fileMenu=new JMenu("文件");
fileMenu.setMnemonic(KeyEvent.VK_F);
JMenuItem fileExitMenuItem=new JMenuItem("退出",KeyEvent.VK_X);
fileExitMenuItem.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
actionExit();
}
});
fileMenu.add(fileExitMenuItem);
menuBar.add(fileMenu);
setJMenuBar(menuBar);
網(wǎng)頁標(biāo)題:java爬蟲爬照片源代碼,圖片 爬蟲
網(wǎng)站地址:http://chinadenli.net/article35/dsiocsi.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、營銷型網(wǎng)站建設(shè)、品牌網(wǎng)站建設(shè)、虛擬主機(jī)、軟件開發(fā)、外貿(mào)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)