Comments (9)
@synzen This doesn't appear to be related to feedparser.
Make the following change to your example script:
- res.body.pipe(feedparser)
+ res.body.pipe(process.stdout)
You'll still see the pathological behavior -- no output, no errors. 🤷♂
from node-feedparser.
Not sure what your asking, but if fetch returns encoded (gzip) you need to decode it before piping to feedparser. When I do this using a mikeal request, this feed parses just fine. Note, this feed is not encoded.
from node-feedparser.
node-fetch
doesn't auto-decode the body unless prompted by the user (which is why it's lightweight and faster from my own tests - like the browser's fetch API) - instead, I let feedparser take on the body. node-fetch
works over 99.999% of the time (it works reliably, and is lighter than other libs!) until I encountered this issue, where feedparser failed to detect an invalid feed for a feed like this (had me scratching me head for days as to what was happening).
You can see the link above has invalid content-encoding headers when you open it in chrome and you see ERR_CONTENT_DECODING_FAILED
and the explanation for it: https://stackoverflow.com/questions/14039804/error-330-neterr-content-decoding-failed. TLDR; response says its gzipped, and it's actually not - browser is confused. I assume feedparser is confused here as well, but instead of giving an error, feedparser just hangs indefinitely
from node-feedparser.
Not a node-fetch user, but parses fine as a mikeal request (feed header in this case indicates that is not encoded).
from node-feedparser.
I get that request
works, as you've said before, but I'm saying the problem is that feedparser isn't emitting any errors here, as I mentioned in my last sentence
from node-feedparser.
Yea, just catching up to subtlety of your problem.
from node-feedparser.
I just set myself up to use node-fetch. When I run it with your feed and {compress:false} option, it works.
from node-feedparser.
Yes it will work in that case because then their server will send an uncompressed body, with no gzip in content-encoding
(the main problem with their feed)
but the point here is that feedparser is not emitting an error here when I really think it should (if it's possible) - the issue is basically being swallowed up by the parser. I'm not trying to find a way to work with the feed, just trying to suggest that feedparser should emit an error so
- Someone else doesn't spend hours scratching their heads why a feed may never resolve through feedparser
- To handle it appropriately in error handling
from node-feedparser.
I think Feedparser is just waiting for input. I think node-fetch maybe hung, not handling the decoding correctly in your offending feeds case. If that's the case Feedparser may not be the place for the fix.
from node-feedparser.
Related Issues (20)
- Cannot parse one particular feed: "Cannot read property..." HOT 4
- HTML content and tags within "description" HOT 2
- [feature request] pass stream reference to callbacks HOT 1
- <link type="application/rss+xml"> was not parsed HOT 3
- Relative links within HTML not resolved
- An in-range update of mri is breaking the build 🚨 HOT 1
- Update examples to use something other than request HOT 2
- global var wouldn't be changed when parsing
- Is it possible to add para-eTag to fetch()? HOT 1
- Question about RSS reader
- react-native: Unable to resolve module `util` HOT 1
- On the usage of MIT licence. HOT 1
- Bad redirection (301) problem HOT 1
- update `on(readable)` to not rely on magical `this` binding
- Abort FeedParser? HOT 1
- How to handle html from the `Author` field? HOT 1
- Allow async iteration in environments where streams implementation supports it HOT 1
- re item-level link elements inferred from guids? HOT 8
- Node 20.11.1 emits deprecation warning DEP0170 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from node-feedparser.