我在C++/Qt4.8.5中为Windows创建了网站爬虫。我发现,有时页面可能包含隐式(伪)重定向,就像script标记中的script。请求的结果代码是200,而不是像Permanently Removed这样的代码。我不使用正则表达式来查找到其他页面的链接,因为它不健壮。我检查HTML节点的属性而不是它。原始爬虫只检测到href标记中的a属性。但是还有其他节点可以包含urls。例如,<META HTTP-EQUIV="REFRESH" CONTENT="0; URL=/relative_url">。与url容器、隐式重定向相关的标记/属性(包括script)的非正式列表在哪里?也许,C++/Java中的某些库包含了这些情况的处理。
另外,我注意到向请求中添加首选语言的标题不能更改站点的页面语言。我的意思是Chrome在某些语言中有页面,但我的爬虫在另一种默认语言中有页面,尽管它试图模仿Chrome用户代理和语言首选项。我注意到Chrome中的cookie包含该站点的语言属性。是否有任何其他属性可以帮助服务器以所需的语言生成页面?
发布于 2014-05-03 13:13:27
是否有任何其他属性可以帮助服务器以所需的语言生成页面?
还有几种可能性,例如geo位置(由IP、地理定位API、.标识)。
https://stackoverflow.com/questions/22740932
复制相似问题