繁体   English   中英

如何获取所有新闻文章的网址?

[英]How to fetch all news article urls?

我可以轻松地从以这种方式组织文章网址的网站上抓取所有新闻文章: http://samplenewsagency.com/en/news/12563 : http://samplenewsagency.com/en/news/12563 只有一个应该生成一些数字,并用12563替换以查找另一则新闻。 但是对于像http://gcaptain.com这样的网站来组织新闻的网站,可以做些什么: http://gcaptain.com/chinese-aircraft-carrier-sails-hong-kong-maiden-visit/ : http://gcaptain.com/chinese-aircraft-carrier-sails-hong-kong-maiden-visit/ 如何找到所有新闻网址?

检查了给定的网站gcaptain.com之后 ,最简单的方法似乎是基于CrawlSpider类创建蜘蛛,并使用规则指定要遵循的链接。 这是最简单的示例:

# -*- 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表达式//article//h2/a找到与新闻文章的所有链接,并且仅从文章中提取标题。 该示例不会为您提供所有文章,因为该网站使用的是无限滚动机制,因此加载所有新闻时必须将其考虑在内。 例如,可以在 Scrapinghub博客文章中阅读如何执行此操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM