Export lists from databases / courses I have created?

This is what I see if I open the csv in notepad:

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.

I’ll keep looking into this.

1 Like

Seems to not be working for large courses. Timeout after a while.

Can you give me an example?

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> .\MemriseScraper.exe 1209
  •   + CategoryInfo          : InvalidArgument: (:) [Get-Process], ParameterBindingException
      + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.GetProcessCommand
    
    

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

  • … …
  •   + CategoryInfo          : ObjectNotFound: (.................................:String) [], CommandNotFoundException
      + FullyQualifiedErrorId : CommandNotFoundException

Same happens with course 1214.

1 Like

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 uploaded the CSV if you need it: https://filebin.ca/4aOPzHQHBx3a/1209_2019-03-16.csv

Thanks for the file.

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.

Hi! Have you tried data-miner.io?

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.

2 Likes

Thank you!

1 Like

Hey, could you update your website? This very helpful tool ain’t working no more.

3 Likes

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!

3 Likes

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… :grinning:

@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!

3 Likes

@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.

1 Like

Hi @tech189, just to let you know that your Scraper tool is timing out after about 15 seconds.

I’ve made good use of the tool during the past few weeks - hopefully, I’ve not broken it!

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?

1 Like

Thank you very much for the offer, but my need is definitely not urgent.

(Right now, I’m slowly collecting material for around April, when I’ll start studying French.)

1 Like

@tech189 Love this scraper you provided. It worked successfully on the course: DLI Russian Basic Course with full audio - by Icombmybeard - Memrise

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.

Hi @gover74 ,

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:

Great to hear. No idea about generating a PDF with audio although technically the format allows so maybe someone will make that one day.

@nphx’s program can help out with getting a list of the links to the audio files for each term but it doesn’t download them as far as I’m aware.

If you want to check it out head to the page they posted above in Dec 2018: Export lists from databases / courses I have created? - #38 by nphx

If you’re stuck maybe you could try running the Anki extension and extract the audio files it saves?