jmt_
Joined 10 years ago
Joined 10 years ago
Also, I have a project in production at work where a device needs to grab its public IP address. My code has a list of sites that provide that info and I have ip4.me as a fallback in that list, so thank you for building it!
Also totally right on the IP reputation point. I saw a post on HN in the last few months of someone describing how they used a cheap mobile data plan + USB LTE modem to proxy their web scraping. I believe you get effectively treated as a residential IP (depends on the complexity of the system - if they're simply blacklisting datacenter IPs then this should work) with the additional benefit of being able to change the IP assigned to the modem easily.
That's what I thought originally too. The problem is the "leaky-ness" of Chrome and Firefox - they expose a large amount of information that can be easily used to train various ML classifiers. Chrome's DevTool Protocol is most commonly used when headless access to Chrome is desired and is inherently "leaky", by design as a protocol for debugging. Don't even try to use any flavor of headless Chrome, even with stealth plugins. Firefox isn't much better.
Webkit doesn't seem to expose as much information, and having a much lesser percentage of usage, I think there's simply less information to feed into a classifier to learn to detect it reliably. There's a few sites that offer fingerprint testing such as:
- https://webscraping.pro/wp-content/uploads/2021/02/testresul...
Try writing a script that goes to a page like this and have it take a screenshot, using Chrome, Firefox, and then Webkit to see the difference yourself. I use the Python port of Playwright personally. In the project I mentioned in my last comment, all I had to do was change the browser Playwright was using to webkit - i.e "browser = p.webkit.launch()" where "p" is a sync_playwright context manager instance. I tried Chrome and Firefox with many, many, attempts at stealth modifications and none worked. Removing my "stealth code" for the other browsers and changing it to webkit was all that was needed. Blew me away that it was that simple honestly. I've used this trick on other websites and have noticed webkit just gets processed differently by captchas/anti-bot, etc. Selenium should also offer support for a WebKit driver if you prefer it over Playwright.
A good trick I discovered is using webkit thru Playwright to bypass fingerprinting and related anti-bot measures. Firefox/Chrome simply leaks too much information, even with various "stealth" modifications. e.g: have been able to reliably scrape a well known companies site that implemented a "state of the art, AI-powered, behavioral analysis, etc" anti-bot product. Using Chrome/Firefox + stealth measures in Playwright did not work - simply switching to Webkit with no further modifications did the trick.
Not exactly what you're asking, but my point is, that with a little time and effort, I've usually been able to find fairly simple holes in most anti-bot measures -- it probably wouldn't be terribly hard (especially since you're versed in scraping) to build-out something similar to what you're looking to achieve without having to pay for sketchy anti-detect browsers.
Additionally, if someone downloads your book for free, and barely reads it, as you suggest, have they _really_ done much more than picking up the book in person, scanning the table of contents, reading some pages in particular, then setting the book back down? What you're describing sounds like the digital version of what I used to do at physical bookstores; it seems a less compelling argument against what the z-lib founders were doing, not more.
But this post has me thinking about separation of concerns. Maybe I should stick to using Notion for anything that I want to search later and use the notebook for the aforementioned drafting and as a work-specific journal. While I haven't tried it much, I believe there's value in "brain-dumping" your day in a simple fashion similar to a diary. A therapist may advise you to deeply introspect on your overall state for that day, which I do think is a valuable tool, but may cause some inertia as a hard requirement for a "work-specific diary". Writing daily events in a simple fashion alongside some optionally additional, also simple, notes could help sort of "flush your mental buffer" of grand-scheme unimportant day-to-day information and help remember more important information. Sort of in the vein of Sherlock Holmes concept of his "mental attic" in the sense that you want to take care of removing/prevent clutter and instead keep track of what's useful to you.