Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

RE: Extract and modify IMG SRC tags in an HTML document.

by johncoswell (Acolyte)
on Apr 27, 2000 at 18:01 UTC ( [id://9399]=note: print w/replies, xml ) Need Help??


in reply to Extract and modify IMG SRC tags in an HTML document.

Here's how I would do it: 1. Read in the whole HTML file into a variable:
open FILE,"filename"; read FILE,$file,100000; close FILE;
(I've seen few HTML docs that are over 100000 bytes in size)
2. Split the $file by "<IMG":
@lines = split(/\<IMG/,$file);

3. Shift out the first line of @lines (it doesn't have an <IMG> tag in it, so we don't need it) and begin to create the new HTML file
$newfile = shift @lines;

4. For each line in @lines:
Split the line at the first ">"
Replace the "SRC=" element with the new "SRC=" element, assuming that the new graphic is based on the old graphic's URL
foreach $line (@lines) { $pos = index($line,'>'); $tag = substr($line,0,$pos+1); $restofline = substr($line,$pos+1); $tag =~ s/SRC\=\"(.*?)\"/SRC\=\"$newurls{$1}\"/gi; $newfile .= $tag . $restofline . "\n"; }
5. Do whatever with the $newfile:
print $newfile;
Complete code: open FILE,"filename"; read FILE,$file,100000; close FILE; @lines = split(/\<IMG/,$file); $newfile = shift @lines; foreach $line (@lines) { $pos = index($line,'>'); $tag = substr($line,0,$pos+1); $restofline = substr($line,$pos+1); $tag =~ s/SRC\=\"(.*?)\"/SRC\=\"$newurls{$1}\"/gi; $newfile .= $tag . $restofline . "\n"; } %

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://9399]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others scrutinizing the Monastery: (4)
As of 2024-04-20 09:27 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found