2 xu life xu_life 于 2016.09.07 16:02 提问

c语言编程,程序跑起来后,浏览网页,可以把网页以.html文件保存到本地

保存的.html就和网页右击另存为生成的那个.html是一样的,程序自动保存的.html双击能打开网页是检验标准。
有没有大神提点一下,有代码更好。求大神。

3个回答

qq_29594393
qq_29594393   Ds   Rxr 2016.09.07 16:10
已采纳

Java 的有 ,Python的也有,就是没C的。。。要不要?

xu_life
xu_life 要不加个qq,我把程序传给你,你有时间就看一眼
一年多之前 回复
xu_life
xu_life 我保存下来html文件双击打开不是原网页,是这样的。_s_sh000001="1~上证指数~000001~3091.14~-0.79~-0.03~50268795~5871987~~"; Pm擧QC5U劶\徱弟焤�;6钤値/鰞f鶠M軚#f8g鬬V貨ТU1+�匏t 岍椩�?kf%sD岩>裸LC�慆 犐UQ稵\享A鎉嵃擨;�9註姢�d誴�5X�49⑴O�.fE驧橲厱�T譐邺M8E�>曣�€z@Y� +�;@霽蜺N鵯跴�╟*(渖~|{Q>by�/跑苘\)幟H织�€疩4刲涵j雮赱賠5懏辈LV偮E.呀b楋�6�犓熠袸e�彏(n[辇z跃W屸牲繣嚞�6秡�摙蠊餅琂Ts毨煍G齄熥钬�2/谨H匁�*� \禪z楛��%壐,酹穜c(軭儕坙�城�姛欐鋃槐HqtT5轘`XD藸r,揋┠;夔T€舰氁��5,/蛱姡斏碙踠>蓧V鈇k(wlZ猖N�+dH某靛鑝 恠淈媻2誟悈蚲m9T悔^,扔]毷@厝_M�_湿刂3徱~锵� #�+羌;抝
一年多之前 回复
qq_29594393
qq_29594393 回复xu_life: 你用记事本的格式打开看一下,有没有乱码,没有的话,新建一个html文件,把内容复制过去,重新打开
一年多之前 回复
qq_29594393
qq_29594393 回复xu_life: 首先,你要注意的是,读取出来的东西是一些字节码,任意文件的组成都是字节码,你可以以任意方式存储字节码,文件的后缀就是一种协议,表示如何解读这个文件的方式,自然,不同类型的文件的协议不同,就像你用中文的去解读英文一样,是不可能得到正确答案的,而用程序直接读取的链接本身就是一个html文件,所以直接保存为html就可以,
一年多之前 回复
xu_life
xu_life 回复当作看不见: 打开html文件和网页不一样啊,全是乱码,改成UTF-8的就全是黑色问号了,���这种了
一年多之前 回复
xu_life
xu_life gzip的也直接读到.html文件?
一年多之前 回复
qq_29594393
qq_29594393 回复xu_life: 用字节流读取的文件不会有乱码,直接用写入文件中就好,用字符流的话,会有乱码,直接读取到一个html文件中就可以直接打开(就是你要的效果),如果想要写爬虫的话,提取连接信息,递归再次读取就得
一年多之前 回复
xu_life
xu_life 网页传输大多是gzip压缩后的,那我怎么在程序中解压缩再保存到.html文件中?知道么
一年多之前 回复
qq_29594393
qq_29594393 回复xu_life: C是忘得差不多了
一年多之前 回复
xu_life
xu_life 894502786@qq.com发来看看,也不知道能不能看懂,谢谢
一年多之前 回复
qq_29594393
qq_29594393   Ds   Rxr 2016.09.07 16:37

Java的

 package com.icss.java;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.URI;
import java.net.URL;
import java.nio.CharBuffer;

import org.omg.CORBA.portable.InputStream;

public class FileBuffe {

            File file1=new File("C:\\Users\\Administrator\\Desktop\\b.html");

            if(!file1.exists()){
                file1.createNewFile();
            }
            FileWriter fw1=new FileWriter(file1);
            BufferedWriter bw1=new BufferedWriter(fw1);


            URL url=new URL("http://www.jd.com/");
            java.io.InputStream is=url.openStream();
            InputStreamReader isr=new InputStreamReader(is,"gb2312");

            BufferedReader br=new BufferedReader(isr);
            String str2=null;
            while((str2=br.readLine())!=null){

                bw1.write(str2);
                System.out.println(str2);
            }
            br.close();
            isr.close();
            is.close();



        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

}

qq_29594393
qq_29594393   Ds   Rxr 2016.09.07 16:38

Python的

 #!/usr/bin/python
# -*- coding: UTF-8 -*-
import urllib2  #调用urllib2  
url="http://"+raw_input("请输入:");
if url=="http://":
    url='http://www.baidu.com/' #把等号右边的网址赋值给url
html=urllib2.urlopen(url).read()   #html随意取名 等号后面的动作是打开源代码页面,并阅读
print html #打印
url=url.split(".")[1]
print url
fo=open("d:\\"+url+".html","wb+");
fo.write(html);
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!