I believe it looks fine there. In order to open it in Excel, try the steps in the link above (and don’t forget to change the separator from , to ; on one of the screens during the process.
PS E:\Downloads> PS E:\Downloads> .\MemriseScraper.exe 1209
Get-Process : A positional parameter cannot be found that accepts argument ‘.\MemriseScraper.exe’.
At line:1 char:1
PS E:\Downloads> …
…
… : The term ‘…
…
…’ is not recognized as the
name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was
included, verify that the path is correct and try again.
At line:1 char:1
PS E:\Downloads> .\MemriseScraper.exe 1209
…
Unhandled Exception: System.AggregateException: One or more errors occurred. —> System.Net.WebException: Timeout exceeded while getting response —> System.TimeoutException: The operation has timed out.
at <StartupCode$FSharp-Core>[email protected](Boolean _arg4)
at Microsoft.FSharp.Control.AsyncPrimitives.CallThenInvokeNoHijackCheck[a,b](AsyncActivation1 ctxt, FSharpFunc2 userCode, b result1)
at Microsoft.FSharp.Control.Trampoline.Execute(FSharpFunc2 firstAction) --- End of inner exception stack trace --- at [email protected](Exception _arg2) at <StartupCode$FSharp-Core>[email protected](Exception exn) at Microsoft.FSharp.Control.AsyncPrimitives.CallFilterThenInvoke[T](AsyncActivation1 ctxt, FSharpFunc2 catchFilter, ExceptionDispatchInfo edi) at Microsoft.FSharp.Control.Trampoline.Execute(FSharpFunc2 firstAction)
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Microsoft.FSharp.Control.AsyncResult1.Commit() at Microsoft.FSharp.Control.AsyncPrimitives.RunSynchronouslyInCurrentThread[a](CancellationToken cancellationToken, FSharpAsync1 computation)
at Microsoft.FSharp.Control.AsyncPrimitives.RunSynchronously[T](CancellationToken cancellationToken, FSharpAsync1 computation, FSharpOption1 timeout)
at Microsoft.FSharp.Control.FSharpAsync.RunSynchronously[T](FSharpAsync1 computation, FSharpOption1 timeout, FSharpOption1 cancellationToken) at [email protected](HtmlNode w) at Microsoft.FSharp.Primitives.Basics.List.map[T,TResult](FSharpFunc2 mapping, FSharpList1 x) at [email protected](String level) at Microsoft.FSharp.Collections.ArrayModule.Parallel.Map@1324-3.Invoke(Int32 i) at System.Threading.Tasks.Parallel.<>c__DisplayClass17_01.b__1()
at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
at System.Threading.Tasks.Task.<>c__DisplayClass176_0.b__0(Object )
— End of inner exception stack trace —
at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
at System.Threading.Tasks.Parallel.ForWorker[TLocal](Int32 fromInclusive, Int32 toExclusive, ParallelOptions parallelOptions, Action1 body, Action2 bodyWithState, Func4 bodyWithLocal, Func1 localInit, Action1 localFinally) at System.Threading.Tasks.Parallel.For(Int32 fromInclusive, Int32 toExclusive, Action1 body)
at Microsoft.FSharp.Collections.ArrayModule.Parallel.Map[T,TResult](FSharpFunc`2 mapping, T[] array)
at Program.main(String[] argv)
It worked for 1209 on the first try for me. If you have a shaky connection or Memrise’s API hiccups, it could crash the whole export because I did not bother with retries.
I don’t know what the problem is but it fails every time. Today I tried 16 times with course 1214 without luck. I even opened serveral instances and staggered the download to see if they would stop at the same time, they didn’t. some failed early while others continued. This rules out connection problems.
It’s a Chrome extension, very easy to use, no need code skills. Free the first 500 credits per month. Each month your count goes back to 0 and you get another 500 credits.
I have managed to export all my courses in order to import to Anki.
I just checked, and the Memrise Scraper tool is working again. It appears to do the job perfectly.
I’ve noticed that with larger courses ( > ~3000 items) a spurious error message pops up, but the processing of the course continues correctly. After several minutes, click on the browser “go back” arrow, then click on the file name that’s shown after "This course has already been scraped and can be found here: … ".
@tech189 - thank you for repairing your Raspberry Pi system!
No problem! Recently the microSD card got corrupted after running for 2 years non-stop so the past few days I reinstalled everything on a USB stick instead and set all the server config to how it was before. Gonna take regular backups this time…
@ian_mn you are indeed correct, this issue is a result of me adding my website to cloudflare for a little extra security and speed - it looks like they drop connection to my website if the request takes longer than 100 seconds. Of course in the background the scraping continues and your workaround does work well. I can’t change their 100 second limit, but instead they recommend setting up a page that periodically checks on the background progress. I’ll get round to that eventually but I’ve made a note for other users. For now I can say it works, I just tested it on a list with ~5000 items and previously it has been used on lists of up to ~17,000 items!
@tech189 Thanks for doing all this - I’m delighted that your tool is back in operation.
It has been extremely valuable in facilitating the stitching together of parts of existing courses for my own current German studies, and will be equally important when I start doing the same for French vocabulary in the springtime.
Got some internet connection issues at the moment sadly, don’t worry you haven’t broken it! DM me and I can walk through setting up the scraper on your computer if you need it right now?
However, obviously no audio. I do not use anki. What I really want to do is download all of the audio files as MP3s so I can listen to them on my phone (or maybe create a PDF with embedded audio files with the english/russian words). Do you know if getting the text with audio is possible the non-Anki route?
Thanks in advance. Under a tight deadline and am trying to find a way to rapidly increase the words I can hear and immediately recognize.
One method would be to generate an MP3 file by pasting the text of a column of Russian words from the course into a text-to-speech program (provided that computer synthesized sound is acceptable to you).
This one accepts up to 50,000 characters apparently: