我有每个美国国会议员的网站列表,我正在以编程方式抓取这些网站以抓取地址。许多网站的底层标记各不相同,但这最初并不是问题,直到我开始看到数百个网站没有为我编写的脚本提供预期的结果。
在花了更多时间评估潜在原因后,我发现调用strip_tags()
结果file_get_contents()
多次擦除页面的大部分源!这不仅删除了 HTML,还删除了我想要抓取的非 HTML!
因此,我删除了对 的调用strip_tags()
,替换为删除所有非字母数字字符的调用,并再次运行该过程。它出现了其他结果,但仍然缺乏很多。这一次是因为我的正则表达式不匹配所需的模式。查看返回的代码后,我意识到 HTML 属性的残余散布在整个文本中,破坏了我的模式。
有没有解决的办法?它是格式错误的 HTML 的结果吗?我能做些什么吗?