使用scrapy时内容为空

时间:2016-04-20 09:40:10

标签: python-2.7 scrapy-spider dynamic-content

提前感谢大家。 我在Python 2.7上使用Scrapy时遇到了问题。 我试图抓取的网页是a discussion board for Chinese stock market。 当我试图在这个页面的横幅下面得到第一个数字“42177”时(你在该网页上看到的数字可能不是你在这里显示的图片中看到的数字,因为它代表了这篇文章的次数)阅读并实时更新...),我总是得到一个空的内容。我知道这可能是动态内容问题,但还不知道如何正确抓取它。

42177 is the number I tried to crawl

我使用的代码是:

item["read"] = info.xpath("div[@id='zwmbti']/div[@id='zwmbtilr']/span[@class='tc1']/text()").extract()

我认为xpath设置正确,我已经检查了这个响应的返回值,它确实告诉我这个目录下没有任何内容。此处显示的结果为:'read': [u'<div id="zwmbtilr"></div>']

如果有某些内容,则<div id="zwmbtilr"></div>之间应该存在某种内容。

非常感谢你们对此分享任何想法!

1 个答案:

答案 0 :(得分:1)

我刚刚在Firefox中打开了你的链接,启用了NoScript。 <div @id='zwmbtilr'></div>内没有任何内容。如果我启用了javascripts,我可以看到你想要的内容。所以,正如你已经新的一样,这是一个动态的内容问题。

您的第一个选择是尝试识别javascript生成的请求。如果你能做到这一点,你可以从scrapy发送相同的请求。如果你不能这样做,下一个选项通常是使用一些包含javascript /浏览器仿真或类似的东西。类似于ScrapyJS或Scrapy + Selenium