Entry tags:
crawling comments on a community?
Hi!
I'm trying to crawl and parse comments on a community for a fandom event (http://hs-worldcup.dreamwidth.org , if you're curious). I've run into a bunch of issues and lack of API documentation, and talked to DW Support a couple of times, and feel like I am further away from successfully doing anything than when I started. Before I say anything else, here is What I Am Really Trying To Do:
If that is what I should do, how do I get around the adult content warning? Is there a flag I can pass with the URL or something? Do I need to do something more complicated than just using curl to grab the pages? Is there something I can pass to say "just give me one piece of HTML with all 5000 comments on it it will be easier for both of us probably?"
Thank you for any suggestions or advice you might have.
I'm trying to crawl and parse comments on a community for a fandom event (http://hs-worldcup.dreamwidth.org , if you're curious). I've run into a bunch of issues and lack of API documentation, and talked to DW Support a couple of times, and feel like I am further away from successfully doing anything than when I started. Before I say anything else, here is What I Am Really Trying To Do:
- take an individual community post (example: http://hs-worldcup.dreamwidth.org/3493.html#comments)
- download all of the comments with some sort of threading information --- the data I need in particular is comment subject, comment author, comment content, whether or not it's a reply and if so to what
- parse out that data and do transformations to it and add it to a database (which is not super relevant to this question I don't think but I can go into more detail if necessary)
If that is what I should do, how do I get around the adult content warning? Is there a flag I can pass with the URL or something? Do I need to do something more complicated than just using curl to grab the pages? Is there something I can pass to say "just give me one piece of HTML with all 5000 comments on it it will be easier for both of us probably?"
Thank you for any suggestions or advice you might have.
no subject
This API is a very proto-REST style API except it uses XML instead of JSON. You just send HTTP requests like a browser (with the same cookie authentication). There is a reference implementation available:
https://github.com/markpasc/jbackup/blob/master/jbackup.pl
You could also look at the Dreamwidth implementation of the content importer:
https://github.com/dreamwidth/dw-free/blob/develop/cgi-bin/DW/Worker/ContentImporter/LiveJournal/Comments.pm
I hope this is helpful!
no subject
The code doesn't make sense to me at a glance but if I run into problems I appreciate having it to go and pore through. Thanks again!
no subject
I wrote those docs originally, and they're pretty much unmodified in the 10 years since I wrote them. Heh.
The docs were written to target existing API developers who had worked with the flat/XML-RPC API that pre-existed, so it assumed you knew which domain to use etc. It's definitely not clear. I think most people end up using the reference implementation.
no subject
no subject
It should work fine for communities. You have to be an admin of the community though; you can only export content that you control. Basically, if you can delete it you can export it.
no subject
no subject
Check recent entries in this comm -- we're working on deprecating the existing API and replacing it with one that was, uh, conceived in the 21st century.
no subject
no subject
Well, my point is that with a bit of luck, the existing APIs will be deprecated within the next year or so and people who want to do things like what you're doing will be able to use the new API. So, while documentation is always a good thing, documentation of the XML-RPC API might be a bit of wasted effort!
Which is not to say "don't do it", just that it may be made obsolete fairly quickly.
no subject
no subject
I'm not aware of anybody actively working on documenting this better/at all. It's relatively little used; admittedly, possibly because it's mostly undocumented.
We're always happy to have people work on the docs. We've generally been using the wiki for documentation like this, and if you're interested in helping, I can point you places (or rather, I can ask some awesome folks to step in and help point you, since they are awesome and know the current taxonomy etc).
no subject
<livejournal>
<comments>
<comment id="1" jitemid="0" posterid="123456" postid???>
<body>Some Text.</body>
<date>2004-05-21T22:29:57Z</date>
</comment>
...
</comments>
</livejournal>
If there's no way to get poster's name and post id for a given comment, is there a way to programmatically download a post page with all comments on it as if I'm logged in to DW? Suppose this is a private post: https://ari-linn.dreamwidth.org/535040.html?format=light&expand_all=1 If I were to download it, how do I authenticate?
GET https://ari-linn.dreamwidth.org/535040.html?format=light&expand_all=1 HTTP/1.1
Host: ari-linn.dreamwidth.org
Authorization: Basic base64_encode("user:password") ??? or do I somehow get a cookie from DW?
no subject
Don't know if that's going to be of any use to you 2 years after the fact. But I figure if anyone else arrives here by googling stuff about Dreamwidth comment export, it'll be a handy tip. :)
no subject
https://bitbucket.org/foxfirefey/dwump/src
no subject
no subject
no subject
An example of that set up is this writing motivation comm: http://verbosity.dreamwidth.org/profile where graphs are automatically posted for their word goal.
And in case it's handy here is a script snakeling set up for having a web server automatically post to dreamwidth bookmarks from pinboard https://github.com/snakeling/PinToDW/blob/master/config.php
(And I've used gmail delay send to have comments / posts go out at specific times as practice for at across multiple time zones bingo sort of game.)
So that might be an alternate path to go down.