Cheerio uses CSS selectors to target specific image sources within the HTML document

I'm having trouble extracting a specific src attribute

const img1 = selector
  .find("li.gallery_thumbItem.s-gallery_thumbItem:nth-child(3) span.gallery_thumbIn> img:last-child")
  .attr("src");

The webpage contains:

https://i.sstatic.net/zeBPG.png

However, I only want to extract the first image from the html, and this is the result of my scraping:

https://i.sstatic.net/lpEu7.png

What I really want to extract is this: https://i.sstatic.net/BQ5QL.png

Answer №1

Take into account the following:

const img1 = selector.find(".photo_gallery_thumbItem.s-photo_gallery_thumbItem:nth-child(3) img[src$='.jpg']:last").attr("src");

Since the rest are in the form of .gif images, they will be disregarded. By filtering them out, only the .jpg item remains.

For further details, visit: https://api.jquery.com/attribute-ends-with-selector/

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Setting up button value dynamically according to dropdown selection in Angular 2

I'm a beginner in angular 2 and I have a button with a dropdown. When I select an option from the dropdown, I want its value to be displayed on the button. The CSS code for styling the dropdown is provided below: .common_select_box { width: 100%; } ...

Tips for extracting popular song titles from music platforms such as Hungama or Saavn

I am looking to retrieve the names of the top trending songs/albums from platforms such as Hungama or Saavn. I experimented with web scraping packages available on npm to extract data from websites, including cheerio, jsdom, and request. Eventually, I came ...

Comparing Procedural Database Code to Using Multiple Database Calls

Here's a question that requires a bit of thought... I'm currently in the process of designing a database and I find myself unsure about where to place the procedural logic that handles complex queries. There are two options I am considering: 1) ...

The query does not produce a match when using the LIKE operator with the retrieved ajax data

My goal is to sync up profiles in my MySQL database with the names and skillsets dropped into my droppable div. At this link, you can find a snippet of code for reference. I am facing two main issues - firstly, the error message mysql_fetch_array() expects ...

Optimize Your Website for Various Screen Sizes

Can anyone assist with centering my webpage on small screen sizes? Everything looks good at the normal width of 989px, but once it shrinks, it shifts to the left and leaves excess white space on the right. I've tried various methods to correct this is ...

AMP: Switch CSS Style

When creating an amp template, I included a button that toggles the visibility of an amp-sidebar. The code for the button is as follows: <button class="button .closed icon" on='tap:sidebar1.toggle'></button> The side-bar toggles suc ...

How do I go about extracting and presenting the JSON data from the ESPN API?

In my current project, I am trying to utilize the jQuery library to work with API JSON data. Even though I am experienced in parsing JSON in PHP, I want to explore doing it with jQuery this time around. The goal is to extract information about each of the ...

Error: The variable "helloSpeaker" has not been declared

As a newcomer to JavaScript, I have been struggling to get my code working. Even after defining jQuery, the issue persists, displaying the error message: Uncaught ReferenceError: helloSpeaker is not defined (function(window) { var helloSpeaker = {}; ...

Capturing a child process's stdout data in Node.js is not always guaranteed to be complete unless the child process explicitly flushes its stdout

When I use nodejs to capture its child process's stdout data, I always end up capturing the former part of the child process's stdout data. Adding fllush(stdout) resolves this issue, but I'm unsure why and hesitant to add flush(stdout). Bel ...

Is it possible to have SVG animation triggered by scrolling?

Here's a small svg code snippet: <svg xmlns="http://www.w3.org/2000/svg" width="164.969" height="195"> <path d="M164.979 28.97a3.675 3.675 0 0 1-6.19 2.66 90.127 90.127 0 1 0-.99 132.64 3.685 3.685 0 0 1 4.95 5.46 97.5 97.5 0 1 1 1 ...

Displaying the fields of the selected [object Object] in the console.log

Currently, I am utilizing "express": "3.2.6",, nodeJS v0.10.25, and "express-myconnection": "1.0.4",. The database connection appears to be functioning properly. However, when attempting to query in my view: console.log("Data: " + rows); The output rece ...

Unlocking the power of URL manipulation in Fastify using Node.js

I'm attempting to retrieve specific parts of the URL from a Fastify server. For instance, the URL looks like this: http://localhost:300/query_tile/10/544/336 Within the Fastify server, I need the values for z/x/y. I've attempted the following ...

Custom JavaScript function throwing an error

function changeElementClass(path, changeClass, duration){ $(path).removeClass(changeClass); $(this).addClass(changeClass); )}; $('.flightDetails .option').changeElementClass('.flightDetails .option','selected',300); ...

What is the best way to transfer data from an AJAX GET request to a Node.js GET route?

Here is an example of an ajax request being made $.ajax({ url: '/reload', type: 'GET', contentType: "application/json", data: { Name: $("#inputName").val(), Link: $("#inputLink").val() }, succe ...

What happens when you click and trigger mouseleave?

window.onload = function() { $(".compartir").hover(function() { console.log('hover'); var self = this; setTimeout($(self).addClass('ready'), 500); }, function() { var self = this; console.log('leave'); ...

An effective method for adding information to a REDIS hash

My current computing process involves storing the results in the REDIS database before transferring them to the main database. At the moment, I handle operations in batches of 10k items per chunk using a separate GAE instance (single-threaded computing wi ...

"Embedding a Highcharts web chart within a pop-up modal window

I am looking to incorporate a Highcharts web chart onto a specific part of a Bootstrap modal, while ensuring the size remains dynamic along with the modal itself. Here's what I have attempted so far: Sample HTML code: <td><a href="#">${ ...

Is it possible to identify which modules in the package.json file need to be compiled?

When deploying to Azure sites, issues may arise if one of your npm modules requires compilation. Is there a simple method to review the packages.json file in order to alert users not on Windows when they might encounter problems? ...

Troubleshooting a problem with the transition of the hamburger menu icon in SC

I'm encountering an issue with the transition property and attempting to utilize the all keyword. After including a fiddle, I can't seem to figure out if I've made a simple mistake or if there is something else going on. I have seen the all ...

How can the border of the select element be removed when it is active in select2

After examining the CSS code, I am still unable to locate the specific property that is being applied to the main element. I am currently customizing the select2 library to suit my needs. However, I am stuck in the CSS as I cannot determine which property ...