簡體   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