top of page

How to scrape commodities and trading data from LME using the Minexa.ai extension

The London Metal Exchange publishes a steady stream of market reports, press releases, member notices, and metal price pages. If you are tracking copper warrant stocks, monitoring off-warrant reporting changes, or building a dataset of LME announcements over time, the search interface at lme.com/search?searchTerm=stocks surfaces exactly the kind of structured content you need. The problem is that it is all locked inside a web page, not a spreadsheet.

This guide walks through how to extract that data using Minexa.ai, a Chrome extension that detects, extracts, and exports web data without any coding required. You will end up with a clean, structured dataset covering report titles, categories, summary text, direct document links, and more, ready to export to Excel or JSON.

Watch the full tutorial first

Before stepping through the screenshots, watch the video below. It covers the complete extraction from opening the LME page to exporting the final dataset. The written steps below follow the same sequence.

What you will extract from LME

The LME search results page organises content across several categories: General reports, Press Releases, Member Notices, PDFs, and Metals pages. Each result row carries a title, a category label, a summary paragraph where one exists, and a direct link. Here is a sample of what the extracted data looks like:

[
  {
    "report_title": "Stocks summary",
    "category": "General",
    "exchange_updates": "",
    "press_release_links": "https://www.lme.com/market-data/reports-and-data/warehouse-and-stocks-reports/stocks-summary",
    "action_description": "Find out more",
    "unique_id": "{6AF2D4F1-9F9B-4734-9586-6268998757D7}"
  },
  {
    "report_title": "LME starts publishing off warrant stocks data",
    "category": "Press Release",
    "exchange_updates": "The London Metal Exchange today proceeds with publishing collated off-warrant stocks data, designed to deliver increased transparency of global metal availability.",
    "press_release_links": "https://www.lme.com/news/press-releases/2020/07/lme-starts-publishing-off-warrant-stocks-data",
    "action_description": "Find out more",
    "unique_id": "{2703DDF1-7D9E-475F-B720-0ABF7D8E4774}"
  },
  {
    "report_title": "LME provides daily insight into off warrant stocks",
    "category": "Press Release",
    "exchange_updates": "The LME confirms that daily reports of off-warrant stock held in LME warehouses will be available from 1 April 2025.",
    "press_release_links": "https://www.lme.com/news/press-releases/2025/lme-provides-daily-insight-into-off-warrant-stocks",
    "action_description": "Find out more",
    "unique_id": "{49AB7388-35F6-4143-9E27-A45FCFAB04C7}"
  }
]

A few fields worth noting before you start the extraction:

The exchange_updates field captures the full summary paragraph per press release row. This means you can filter results by content at the dataset level, without clicking into each individual page. If you are looking for all announcements that mention off-warrant reporting or low-stock measures, this field gives you that in one column.

The unique_id field surfaces a GUID per record. When you run the same scraper across multiple sessions or paginated pages, this identifier lets you deduplicate rows reliably without depending on title matching, which can be fragile when titles are similar or truncated.

The press_release_links field returns a complete, absolute URL per row. For Member Notice rows, this resolves directly to a downloadable file endpoint. That means you can feed these URLs into a secondary process to retrieve documents programmatically, without any additional navigation step.

The lme_news field returns a structured array of typed objects per row, encoding the category label, article title, summary text, and call-to-action link all within a single traversable object. If you are processing the JSON export, this field gives you the full context of each result in one place.

Step-by-step: extracting LME data with Minexa.ai

Step 1: Open Minexa.ai and navigate to the LME page

Start by opening the Minexa.ai home page and installing the Chrome extension if you have not already. Once installed, navigate to the LME search results page in your browser.

With the extension active, browse to lme.com/search?searchTerm=stocks. Let the page finish loading so all search results are visible before proceeding.

Step 2: Confirm you are on the right page

Open the Minexa.ai extension popup. You will see a button labelled 'I'm on the right page'. Click it to tell the extension that this is the page you want to extract from. Minexa will begin detecting the list structure and data points automatically.

Step 3: Validate pagination detection

Minexa will detect how the LME search results page handles multiple pages of results. You will see a summary of the pagination method found, along with a Continue button. Review the detection and click Continue to proceed.

Step 4: Choose your scraping scope

At this point, Minexa asks whether you want to extract only the list data visible on the search results page, or whether you also want to follow each result link and extract detail page content. For most LME monitoring workflows, the list data alone is sufficient. Select the option that fits your use case.

Step 5: Start the scraping job

Choose between the simple scraping scenario and the advanced option. For the LME search results page, the simple scenario handles everything you need. Minexa will automatically highlight the container holding the full list of results.

Once the container is highlighted and confirmed, Minexa creates the scraper and surfaces all extracted data points for review.

Step 6: Review extracted columns

After the scraper is created, you can browse all detected data points using the next and previous navigation. Fields like report_title, category, exchange_updates, press_release_links, and unique_id will all be visible here. You do not need to specify these manually; Minexa identifies them from the page structure.

Step 7: Run the job and export

With the scraper configured, your job appears in the scraping jobs list. Click Run to start extraction. Minexa works through all pages of results automatically.

Once the job finishes, the data appears in a structured table. You can export to Excel or JSON directly from this screen.

Scheduling ongoing LME data collection

The LME publishes new press releases, member notices, and stock reports on a regular basis. Once your scraper is set up, you can schedule it to run automatically at whatever interval suits your monitoring needs, daily, weekly, or otherwise. Each run captures the current state of the search results page, so you build up a historical record of announcements and report publications over time without triggering anything manually.

If you export to Google Sheets, each scheduled run can update your sheet automatically, keeping your dataset current without any manual intervention.

For a related read on extracting financial market data with the Minexa.ai extension, see the post on scraping TradingView bond ideas with the Minexa.ai API.

Recent Posts

See All

Heading 2

bottom of page