我目前正试图用刮擦来刮MSN新闻,并且在从浏览器获得适当的响应时遇到了一些困难。
当我在浏览器中访问https://www.msn.com/en-us/news/world时,我会看到以下内容:

这是完美的,因为这就是页面应该看起来的样子,但是当我运行命令scrapy shell https://www.msn.com/en-us/news/world,然后运行view(response)时,这就是我所看到的。

我尝试过禁用javascript来查看内容是否被ajax加载,这就是为什么它不能工作,但所做的只是阻止缩略图的加载。有人知道为什么会这样吗?
发布于 2017-08-01 04:18:49
该网站肯定有大量的javascript运行。您应该如何处理这个问题:在一个实例中禁用javascript,并在一个实例中设置一个正常的实例。
然后,您可以四处挖掘和比较,即查找缩略图id并搜索它的no-javascript源--它可能位于json或javascript变量中的某个地方。
禁用javascript的这就是克莱比看到的。
你可以看到文章的名称和简短的描述在那里。如果你检查标题,你甚至可以看到有一个链接到缩略图以及!
articles = response.xpath("//li[@data-m]/a[@aria-label]")
for article in articles:
# thumbnail
response.xpath('img/@data-src').extract_first()
# '{"default":"//img-s-msn-com.akamaized.net/tenant/amp/entityid/AAp0iW6.img?h=414&w=624&m=6&q=60&u=t&o=t&l=f&f=jpg&x=1280&y=688"}'
# title
article.xpath("@aria-label").extract_first()
# 'north korea can hit most of united states: u.s. officials provided by reuters'
# description
article.xpath("/img/@alt").extract_first()
# This Friday, July 28, 2017, photo distributed by the Nort...https://stackoverflow.com/questions/45427636
复制相似问题