webpage-rs icon indicating copy to clipboard operation
webpage-rs copied to clipboard

Fails to read info from specific websites

Open Nutomic opened this issue 2 years ago • 6 comments

According to reports from our users, webpage-rs is unable to parse info from https://oko.press/ website.

I was able to reproduce this by putting the site url into from_url test case.

Downstream issue: https://github.com/LemmyNet/lemmy/issues/1796 (the other sites mentioned in the issue work fine in my tests).

Nutomic avatar Apr 22 '22 11:04 Nutomic

Thanks for reporting.

I had a quick look: a stray <span id="fb-root"></span> in the <head> on that site seems to trick the parser into thinking the <body> has started. The people downstream at the html5ever project may be interested in picking that up.

My library only picks up the meta info that is actually located in the <head>. I could change that to look in the body as well, but that should be opt-in. Would that work for you?

orottier avatar Apr 22 '22 12:04 orottier

Using an opt-in is no problem, assuming that there are no negative side effects.

And im not familiar with html5ever, so not sure how it relates.

Nutomic avatar Apr 22 '22 13:04 Nutomic

Okay, I can pick this up next week. Feel free to open a PR if you are in a hurry

orottier avatar Apr 22 '22 18:04 orottier

I've got little idea how this actually works, but maybe it would make sense to trigger searching in the body if no data is found in the head? (original reporter here)

Unless the problem is multiple matching tags, which I guess might be what's going on with the charset on some of such pages for example;

https://wyborcza.biz/biznes/7,147582,28355528,klasa-srednia-zaciska-pasa.html?squid_js=false

has <script src="[https://cdn.cookielaw.org/scripttemplates/otSDKStub.js](view-source:https://cdn.cookielaw.org/scripttemplates/otSDKStub.js)" type="text/javascript" charset="UTF-8" data-domain-script="109023

before we arrive at the actual <meta charset="ISO-8859-2">

so we end up with something like this on our page;
Zrzut ekranu z 2022-04-25 11-27-48

(and that's one of the biggest news media in Poland, not some random small things, dont ask me why would anyone still use ISO charsets)

harcesz avatar Apr 25 '22 09:04 harcesz

Not sure if I should open another issue, but Lemmy doesn't seem to get images from root-relative URLs like this one: <meta property="og:image" content="/wp-content/uploads/2023/06/JavaScript-modificando-el-portapapeles.png">. I didn't test if this library is the problem or just Lemmy, because I don't know Rust. Other programs like Telegram, Postmill, Mastodon and Facebook can display the image of root-relative URLs when shared.

Here you can find such og:image to make tests: https://freakspot.net/eo/eviti-ke-%C4%9Cavoskripto-modifu-la-tondujon/

jorgesumle avatar Jun 24 '23 20:06 jorgesumle

Thanks for bringing this to my attention @jorgesumle This library only lists the opengraph fields as-is, and it is lemmy that then tries to fetch the listed URLs, so I think it is up to lemmy to resolve the URLs properly. I created a PR on the lemmy repo for it. Perhaps you can vouch for it over there!

Leaving this issue open to address the original issue. That should be fixed on my part.

orottier avatar Jun 25 '23 07:06 orottier