我正在使用Scrapy开展项目。
所有想要的领域,但一个人完全被刮掉了。丢失字段的内容根本不会显示在Scrapy响应中(在scrapy shell中检查),而当我使用浏览器访问页面时它会显示。在scrapy响应中,预期的标签存在,但不是标签之间的文本。
没有涉及JavaScript,但它是由服务器提供的变量(它是当前访问该特定页面的次数)。没有iframe参与。
已经设置用户代理(在设置文件中)以匹配我的浏览器。 已将下载延迟(在设置文件中)设置为5。
编辑(补充):
页面:http://www.fincaraiz.com.co/apartamento-en-venta/bogota/salitre-det-1337688.aspx
Xpath到想要的元素:// * [@ id =" numAdvertVisits"]
这个谜团的原因是什么?
答案 0 :(得分:1)
它是一个加载了ajax / javascript的值。
您采取了哪些步骤来确定没有涉及JS?我加载了没有javascript的页面,虽然页面的那个区域有存根内容(" Visitas"),但实际数据是用ajax请求写的。
您仍然可以使用scrapy加载该数据,它只会对通常通过页面ajax访问的URL端点发出额外请求。服务器通过http://www.fincaraiz.com.co/WebServices/Statistics.asmx/GetAdvertVisits?idAdvert=1337688&idASource=40&idType=1001处的脚本返回XML访问次数(尝试加载该脚本,您将看到原始电子邮件中提供的页面的访问次数)。
还有另一个ajax请求返回" True"该页面,但我不确定数据的实际含义是什么。不过,它可能很有用: