【发布时间】:2018-10-09 04:40:35
【问题描述】:
我需要编写一个程序来读取维基百科源文件并提取所有指向其他网页的链接。所有网页看起来像示例:
<a href="/wiki/PageName" title="PageName">Chicken</a>
我基本上需要将 /wiki/ 之后的 PageName 与标题匹配,如果它们相同,如上,则在终端上仅显示 PageName。
但是,由于与上面的格式不同,因此不应匹配以下内容:
<a href="http://chicken.com>Chicken</a>(这是维基百科上一个普通网站的链接)
<a href="/wiki/Chicken >Chicken</a>(缺少标题=部分)
我试图实现的输出如下所示:
Example output I am trying to achieve
我已经为此工作了很长时间,并且能够做到以下几点:
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[])
{
FILE * file;
file = fopen(argv[1], "r");
char line[512];
char* search;
while(!feof(file)){
fgets(line,512,file);
search = strstr( line, "<a href=\"/wiki/");
if(search != NULL){
puts(search);
}
}
}
代码只过滤到 /wiki/ 但从这里开始我是空白的。我尝试了很多搜索,但无法获得线索。帮助将不胜感激。
【问题讨论】:
-
您将使用 Perl 或 Python 更快地获得工作代码。 C 不是解析字符串的最佳语言。这当然是可能的,但它需要 C 知识。
-
@mvp 是一个更大项目的一部分。必须使用 C :(
-
while(!feof(file))is wrong. -
请勿发文字图片
标签: c pointers segmentation-fault string.h