首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Scrapy抓取MSN新闻

用Scrapy抓取MSN新闻
EN

Stack Overflow用户
提问于 2017-08-01 01:34:37
回答 1查看 548关注 0票数 0

我目前正试图用刮擦来刮MSN新闻,并且在从浏览器获得适当的响应时遇到了一些困难。

当我在浏览器中访问https://www.msn.com/en-us/news/world时,我会看到以下内容:

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

我尝试过禁用javascript来查看内容是否被ajax加载,这就是为什么它不能工作,但所做的只是阻止缩略图的加载。有人知道为什么会这样吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-01 04:18:49

该网站肯定有大量的javascript运行。您应该如何处理这个问题:在一个实例中禁用javascript,并在一个实例中设置一个正常的实例。

然后,您可以四处挖掘和比较,即查找缩略图id并搜索它的no-javascript源--它可能位于json或javascript变量中的某个地方。

禁用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...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45427636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档