首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取所有新闻文章的urls?

如何获取所有新闻文章的urls?
EN

Stack Overflow用户
提问于 2017-07-09 16:35:56
回答 1查看 1.4K关注 0票数 0

我可以很容易地从网站上抓取所有的新闻文章,其中文章的urls是这样组织的:http://samplenewsagency.com/en/news/12563。只需生成一些数字并替换为12563即可找到另一条新闻。但对于像http://gcaptain.com这样以这种方式组织新闻的网站来说,我们能做些什么呢:http://gcaptain.com/chinese-aircraft-carrier-sails-hong-kong-maiden-visit/。如何查找所有新闻urls?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-09 18:00:08

在检查给定的网站gcaptain.com之后,最简单的方法似乎是基于CrawlSpider类创建爬行器,并使用规则指定要遵循的链接。下面是最简单的例子:

代码语言:javascript
复制
# -*- coding: utf-8 -*-
import scrapy
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule

class GcaptainSpider(CrawlSpider):
    name = 'gcaptain'
    allowed_domains = ['gcaptain.com']
    start_urls = ['http://gcaptain.com/']

    rules = (
        Rule(LinkExtractor(restrict_xpaths='//article//h2/a'), callback='parse_article', follow=True),
    )

    def parse_article(self, response):
        item = {}
        item['title'] = response.xpath('//article//header/h1/text()').extract_first()
        return item

它假设所有指向新闻文章的链接都可以使用XPath expression //article//h2/a找到,并且只从文章中提取标题。这个例子不会给你所有的文章,因为网站使用无限滚动机制,你必须考虑它来加载所有的新闻。例如,可以在this Scrapinghub博客文章中了解如何做到这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44994503

复制
相关文章

相似问题

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