用C如何读取一个网页内容

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用C如何读取一个网页内容相关的知识,希望对你有一定的参考价值。

比如, 我要读取127.0.0.1/1.txt
如何实现

首先,用C读取已知文件名的本机文件不是问题吧?那问题实质是在获取URL表示的文件,特别是获取远程WWW服务器以URL表示的文件,把它存放到本机。
有一个API函数叫 URLDownloadToFile(), 用起来特简单。只要一句:
URLDownloadToFile(NULL, url, filename, 0, NULL);
其中url是你需要的文件,filename是下载到本机后的本地文件名。例如:
URLDownloadToFile(NULL, "http://127.0.0.1/1.txt", "C:\\temp\\1.txt", 0, NULL);
下面处理C:\temp\1.txt就可以了。
这个函数在urlmon.h中有说明;需使用urlmon.lib. 有关参数意义请自己查。好像最后一个参数是指定回调函数,可以检查下载状态。但我从来没指定过。从远程站点一次下载很多文件时特别好用。我曾经用它循环起来,一次下载两千多个SWF文件。
但要注意:较大的文件不一定下载完全;有些站点可能检查链接源,限制下载。
参考技术A 需要结合到网络编程了,标准c语言只能操作本地的文件
所以,需要用到更深入的知识了,如socket等

python如何读取网页中的数据

想读取远程指定网页中的数据,如-当前在线交流人总数。如何实现

用Beautiful Soup这类解析模块:

    Beautiful Soup 是用Python写的一个HTML/XML的解析器,它可以很好的处理不规范标记并生成剖析树(parse tree);

    它提供简单又常用的导航(navigating),搜索以及修改剖析树的操作;

    用urllib或者urllib2(推荐)将页面的html代码下载后,用beautifulsoup解析该html;

    然后用beautifulsoup的查找模块或者正则匹配将你想获得的内容找出来,就可以进行相关处理了,例如:

    from BeautifulSoup import BeautifulSoup
    html = '<html><head><title>test</title></head><body><p>test body</p></body></html>'
    soup = BeautifulSoup(html)
    soup.contents[0].name
    # u'html'
    soup.comtents[0].contents[0].name
    # u'head'
    head = soup.comtents[0].contents[0]
    head.parent.name
    # u'html'
    head.next
    # u'<title>test</title>

参考技术A 不知道你说的网页是指的什么,如果你说的是我保存了一网页在你的电脑上,那就直接用open函数打开,read函数读就行了。

如果你说的是某个URL指向的网页内容,那就要用urllib2模块来抓取网页咯。
参考技术B 就是属于网页抓取,可参考:
如何用Python,C#等语言去实现抓取静态网页 模拟登陆网站

里面有逻辑解释和代码。

(此处不能贴地址,可以通过google搜标题,即可找到帖子地址)
参考技术C 用Beautiful Soup这类解析模块

Beautiful Soup 是用Python写的一个HTML/XML的解析器,它可以很好的处理不规范标记并生成剖析树(parse tree)。它提供简单又常用的导航(navigating),搜索以及修改剖析树的操作。

用urllib或者urllib2(推荐)将页面的html代码下载后,用beautifulsoup解析该html

然后用beautifulsoup的查找模块或者正则匹配将你想获得的内容找出来,就可以进行相关处理了

例子:

from BeautifulSoup import BeautifulSoup

html = '<html><head><title>test</title></head><body><p>test body</p></body></html>'

soup = BeautifulSoup(html)

soup.contents[0].name
# u'html'

soup.comtents[0].contents[0].name
# u'head'

head = soup.comtents[0].contents[0]

head.parent.name
# u'html'

head.next
# u'<title>test</title>

剩下的自己看文档吧

参考资料:http://wenku.baidu.com/view/c4ad3afa770bf78a6529548f.html

本回答被提问者采纳

以上是关于用C如何读取一个网页内容的主要内容,如果未能解决你的问题,请参考以下文章

python如何读取网页中的数据

用Autoit编程软件,如何读取屏幕上的信息?Autoit高手进!

Python中怎样获取一网页上的内容?我想通过python读取网页上的各个不同的单词和分别出现的次数

Delphi 窗体中怎样嵌入网页

怎么用c语言解析xml文件

vb 获取一个网页内的链接和链接名称