need a tutorial on how scrape a site

Hi

I bought Scrapebox today for a particular task, but I’m struggling to navigate through it

All tutorials I seem to find are for SEO, which is something I intend to use it for but I need to use it for another task first

I’d like to scrape a site

It has many levelsĀ 
category (t-shirts crew neck)
subcategory (T-Shirts 100gsm – 135gsm Ladies)
product (Cotton Ladies)

when you’re on the product page the product price depends on the colour and size also, these change dynamically without the URL changing with java
from this page, I want to grab
product code
manufacturer
description
colour size qty price

this is the page I’d like to scrape
absoluteapparel.co.uk/product/id/28168

can scrapebox help me do this, or should I use something else?

thanks in advance

Unity 3D – Why does my button need to be clicked twice to work?

My goal is to go back and forth between a series of animations by clicking left and right arrow UI buttons. I wrote this C# script and the "next" button (which executes AddInt() on click) works as intended, however the "previous" button (which calls ReduceInt() on click), needs to be clicked twice to work. Is this a glitch or is something wrong with my code?

public class update_animator_parameter_int : MonoBehaviour {     Animator gameobject_animator;     public string int_parameter;     public int max_int;     public int current_int=0;      void Start(){         gameobject_animator = GetComponent<Animator>();}      public void AddInt(){           current_int++;           if (current_int > max_int){current_int = 0;}           gameobject_animator.SetInteger(int_parameter, current_int);}       public void ReduceInt(){           current_int--;           if (current_int < 0){current_int = max_int;}           gameobject_animator.SetInteger(int_parameter, current_int);} } 

Does a dark tiefling need to eat?

Tieflings are Outsider (Native), which means they’re native to the Material Plane. ToM’s Dark Creature template makes a creature extraplanar when not on the Plane of Shadow.

To me, this seems to imply that the creature is native to the Plane of Shadow, which implies they’re not native to the Material Plane. Does anything actually happen to their Native subtype, though? Which is to say, are they treated like a non-Native Outsider for the purposes of eating/sleeping/raising?

A* algorithm: need help fixing path that come in contact with obstacle

I am using A* as a pathfinding technique for my AI; it works fine until it gets close to an obstacle (in my case rocks). Right now it just continues the loop if it finds a neighbor thats a rock. It should not actually do this. It should check it.

Allowed Moves: FORWARD,LEFT,RIGHT (LEFT & RIGHT at diagonals) turns are basically two phases: FORWARD, turn face then FORWARD (counts as one move with no additional cost)

The AI should know to turn left or right on the rock in the direction of the goal while also taking other rocks into account.

The line that checks for rocks is: if(at == 1 || at == 2) continue;

I guess you could use the neighborlist to check the sides of the ship.

However it shouldn’t always check it. Only when it comes in contact with a rock

Scenario 1: (ship should turn left (one move) once then continue on path) enter image description here

Scenario 2: (ship should either turn left or right twice (two moves) to unblock itself) enter image description here

Scenario 3: (ship should turn left or right depending on which path is shorter: doing two lefts will hit rock twice but distance is shorter than if it went right by 1 tile)

enter image description here

In each of these scenarios the face of the ship is the only thing that changes; unless its a forward move into the rock then there is no change. If right/left were used in any other situation (regular tiles) it would change position also.

public class AStarSearch {          private ServerContext context;     private List<AStarNode> openList;     private List<AStarNode> closedList;          private double ORTHOGONAL_COST = 1.0;     private double DIAGONAL_COST = ORTHOGONAL_COST * Math.sqrt(2.0);          public AStarSearch(ServerContext context) {         this.context = context;     }      private Comparator<AStarNode> nodeSorter = new Comparator<AStarNode>() {          @Override         public int compare(AStarNode n0, AStarNode n1) {             if(n1.fCost < n0.fCost) return 1;             if(n1.fCost > n0.fCost) return -1;             return 0;         }              };      public List<AStarNode> findPath(Player bot, Position goal){         openList = new ArrayList<AStarNode>();         closedList = new ArrayList<AStarNode>();         List<AStarNode> neighbors = new ArrayList<AStarNode>();         AStarNode current = new AStarNode(bot, bot.getFace(), MoveType.NONE, null, 0, bot.distance(goal));         openList.add(current);          while(openList.size() > 0) {             Collections.sort(openList, nodeSorter);             current = openList.get(0);             if(current.position.equals(goal)) {                 List<AStarNode> path = new ArrayList<AStarNode>();                 while(current.parent != null) {                     path.add(current);                     current = current.parent;                 }                 openList.clear();                 closedList.clear();                 Collections.reverse(path);                 return path;             }             openList.remove(current);             closedList.add(current);                          int x = current.position.getX();             int y = current.position.getY();             switch (current.face) {                 case NORTH:                     neighbors.add(new AStarNode(new Position(x, y), VesselFace.NORTH, MoveType.NONE,current,0,0));                     neighbors.add(new AStarNode(new Position(x, y+1), VesselFace.NORTH, MoveType.FORWARD,current,0,0));                     neighbors.add(new AStarNode(new Position(x-1, y+1), VesselFace.WEST, MoveType.LEFT,current,0,0));                     neighbors.add(new AStarNode(new Position(x+1, y+1), VesselFace.EAST, MoveType.RIGHT,current,0,0));                     break;                 case EAST:                     neighbors.add(new AStarNode(new Position(x, y), VesselFace.EAST, MoveType.NONE,current,0,0));                     neighbors.add(new AStarNode(new Position(x+1, y), VesselFace.EAST, MoveType.FORWARD,current,0,0));                     neighbors.add(new AStarNode(new Position(x+1, y+1), VesselFace.NORTH, MoveType.LEFT,current,0,0));                     neighbors.add(new AStarNode(new Position(x+1, y-1), VesselFace.SOUTH, MoveType.RIGHT,current,0,0));                     break;                 case SOUTH:                     neighbors.add(new AStarNode(new Position(x, y), VesselFace.SOUTH, MoveType.NONE,current,0,0));                     neighbors.add(new AStarNode(new Position(x, y-1), VesselFace.SOUTH, MoveType.FORWARD,current,0,0));                     neighbors.add(new AStarNode(new Position(x-1, y-1), VesselFace.WEST, MoveType.RIGHT,current,0,0));                     neighbors.add(new AStarNode(new Position(x+1, y-1), VesselFace.EAST, MoveType.LEFT,current,0,0));                     break;                 case WEST:                     neighbors.add(new AStarNode(new Position(x, y), VesselFace.WEST, MoveType.NONE,current,0,0));                     neighbors.add(new AStarNode(new Position(x-1, y), VesselFace.WEST, MoveType.FORWARD,current,0,0));                     neighbors.add(new AStarNode(new Position(x-1, y+1), VesselFace.NORTH, MoveType.RIGHT,current,0,0));                     neighbors.add(new AStarNode(new Position(x-1, y-1), VesselFace.SOUTH, MoveType.LEFT,current,0,0));                     break;             }             for(AStarNode neighborNode : neighbors) {                 // Compute the cost to get *to* the action tile.                 double costToReach = current.position.distance(neighborNode.position);                  int at = context.getMap().getTile(neighborNode.position.getX(), neighborNode.position.getY());                 if(at == 1 || at == 2) continue; // this is the line where it checks if tile is rock or not                  double gCost = current.gCost + costToReach;                 double hCost = heuristicDistance(neighborNode.position,goal);                 AStarNode node = new AStarNode(neighborNode.position, neighborNode.face,neighborNode.move, current, gCost, hCost);                 if(positionInList(closedList, neighborNode.position) && gCost >= node.gCost) continue;                 if(!positionInList(openList, neighborNode.position) || gCost < node.gCost) openList.add(node);             }         }         closedList.clear();         return null;     }          private double getActionCost(Position node, int currentTile) {         if(currentTile > 3 && currentTile < 11) {             return 0.2;         }else {             return 1;            }     }      private double heuristicDistance(Position current, Position goal) {         int xDifference = Math.abs(goal.getX() - current.getX());         int yDifference = Math.abs(goal.getY() - current.getY());          int diagonal = Math.min(xDifference, yDifference);         int orthogonal = xDifference + yDifference - 2 * diagonal;          return orthogonal * ORTHOGONAL_COST + diagonal * DIAGONAL_COST;     }          private boolean positionInList(List<AStarNode> list, Position position) {         for(AStarNode n : list) {             if(n.position.equals(position)) return true;         }         return false;     }  } 

AStarNode:

public class AStarNode {      public Position position;     public VesselFace face;     public MoveType move;     public AStarNode parent;     public double fCost, gCost, hCost;          public AStarNode(Position position, VesselFace face, MoveType move, AStarNode parent, double gCost, double hCost) {         this.position = position;         this.face = face;         this.move = move;         this.parent = parent;         this.gCost = gCost;         this.hCost = hCost;         this.fCost = this.gCost + this.hCost;     }    }   

There will be no additional cost of running into a rock as long as its a shorter route. Also, if a ship tries to turn left or right from its current position; but there is a rock at that tile it will move up one tile and changes its direction.

The overall question/goal: How do I fix my current code to account for these situations; please provide an implementation or instructions.

Do you need line of sight to cast spells on someone?

The rules on spellcasting contain the following section:

A Clear Path to the Target

To target something [with a spell], you must have a clear path to it, so it can’t be behind total cover. If you place an area of effect at a point that you can’t see and an obstruction, such as a wall, is between you and that point, the point of origin comes into being on the near side of that obstruction.

This section is not really clear to me. Should this mean that only non-transparent objects are a problem in targeting, or that you have to have line of sight and line of effect as well?

Also, can you prevent a wizard from casting spells by blinding her?

If a reaction spell has material components, do I already need to be holding them to cast it?

Some spells that are cast with a reaction, such as Feather Fall, require material components. Suppose I am using a component pouch instead of a focus, but I’m not currently holding a small feather. If a trap door opens under the party, am I able to quickly reach for the feather in my pouch as part of the reaction to cast Feather Fall, or am I out of luck?

Obviously this is mostly a non-issue for a caster who uses a spellcasting focus instead of a component pouch, since they are pretty much always holding their focus, and I don’t think there are many (any?) reaction spells with costly or consumed material components.

Under what conditions does a Martial Spellcaster need the Warcaster feat to comfortably cast spells?

I had a player recently come to me about playing an Eldritch Knight character, and they had questions about their ability to cast spells while holding a weapon (or two), and were debating taking the Warcaster feat (PHB, 170) to mitigate specifically those issues. At my table, I try to take the somatic/material component requirements of spells seriously, so I want to make sure I have a grasp of what can or cannot be done when a spellcaster holding weapons tries to cast a spell, or return to attacking after having cast a spell.

One thing I’m especially interested in is the degree to which the character can "comfortably" do the actions listed. "Comfortably" in this context means that the character isn’t taking certain actions which might be technically legal according to the rules of the game, but which might inconvenience them under common circumstances. A common example is a Two Weapon Fighting character who drops a weapon to the ground to grab their spellcasting focus for casting; if they have to move, they risk leaving their weapon behind on the ground, so from my perspective, this wouldn’t qualify as a "comfortable" maneuver.

So, for the following builds, under what conditions is the character able to cast spells, and to what degree does the Warcaster feat improve their ability to do so?

  • Holding a one-handed weapon
  • Holding two one-handed weapons
  • Holding a one-handed weapon and Shield (neither Cleric nor Paladin)
  • Holding a one-handed weapon and Shield (Cleric or Paladin)
    • I’m separating these two out because Clerics and Paladins both get the ability to affix a Holy Symbol to their shield and therefore use their Shield as they would a Material Component. So I think the answer to this question is necessarily different depending on whether the spellcaster is a paladin or an Eldritch Knight, for example.
  • Holding a two-handed weapon

Need to replace Currency Shortforms

I want to replace the currency shorten alphabet, it is currently in M, L and So on. I want to change to indian currency number format like K, L and CR

below is code:

if(!function_exists(‘houzez_number_shorten’)) { function houzez_number_shorten($ number, $ precision = 0, $ divisors = null) { $ number = houzez_clean_price_20($ number);

    if (!isset($  divisors)) {         $  divisors = array(             pow(1000, 0) => '', // 1000^0 == 1             pow(1000, 1) => 'K', // Thousand             pow(1000, 2) => 'M', // Million             pow(1000, 3) => 'B', // Billion             pow(1000, 4) => 'T', // Trillion             pow(1000, 5) => 'Qa', // Quadrillion             pow(1000, 6) => 'Qi', // Quintillion         );         }          foreach ($  divisors as $  divisor => $  shorthand) {         if (abs($  number) < ($  divisor * 1000)) {             // Match found             break;         }     }     //Match found or not found use the last defined value for divisor     $  price = number_format($  number / $  divisor, 1);     $  price = str_replace(".0","",$  price);     return $  price . $  shorthand; } 

I am not good at coding, so any help will be appreciated