Hot answers tagged

41

All we need to create an interactive Google Map in the notebook is access to the individual tiles - and there is a relatively simple naming scheme for those tiles. I actually typed up a description of this naming scheme a few years ago and posted it here: http://facstaff.unca.edu/mcmcclur/GoogleMaps/Projections/GoogleCoords.html The examples on that page ...


29

As much as I would like to see a solution to this problem written in Mathematica, this is very unlikely given the scope of the problem. I would like to share a way to solve this using JLink, in the hope that it may help someone. JLink, for those who don't know, is a package that comes with Mathematica. It allows you to execute Java code from within ...


27

I recommend that you import as an XMLObject, which represents structured XML data in a Mathematica-based format. info = Import[ "http://area51.stackexchange.com/proposals/4470/martial-arts", "XMLObject"]; You can access the parts of xml using Mathematica patterns, like so: labels = Cases[info, XMLElement[ "div", {"class" -> "site-health-...


18

Animations as interactive visualizations The simplest form of interactive graphics is an animation in which the play head can be moved by the user. That doesn't sound very interactive, but in terms of functionality the play head is nothing but a type of Slider. With this simple interpretation of interactivity, any movie format supported by Export would be ...


17

It seems networkx uses the D3 library and the example is based on this. We can adapt that code to work with Mathematica and generate JSON output from Mathematica. Save the HTML from the linked page to index.html. Change miserables.json in the source code to graph.json. Generate JSON with Mathematica: g = RandomGraph[BarabasiAlbertGraphDistribution[100, ...


16

Comment This was originally answered on Oct 2, 2012 using V8. The performance can be dramatically improved using V9's URLFetchAsynchronous, as now shown below. Fortunately, we needn't download all the tiles at once. We can use Dynamic to set up a little pan-and-zoom explorer. The first load takes a bit and zooming out takes a bit. Panning and zooming ...


16

Alright, follows are the regular expressions required to solve this. For further information on how these things work I would check out the regular expression documentation on the wolfram docs site. As far as how regular expressions themselves work, check out the perl regular expression man page. This is where I learned how to write regexes back when I ...


15

You can always do Import["http://wsj.com","XMLObject"]. That has the side effect of producing some irregular XML whenever the underlying HTML doesn't quite map cleanly to XML, but it mostly produces an XMLObject[] expression tree that you can match over and extract data from, and I've never seen a web page for which it won't return something.


14

After much fiddling... This function gathers the "vital signs" of every proposal, and returns everything in a list. proposalURL = "http://area51.stackexchange.com/?tab=beta&page="; getProposalData[main_] := Module[{b, srclist, pnumber, imp1, url, imp2, proplist, proplinks, fullproplinks, propxml, health, propname, fulldata}, srclist = {}; ...


13

I agree wholeheartedly with the comment of celtschk to the OP. Both journals have RSS feeds (with pointers at the bottom of their main pages) that are designed exactly for the purpose that you describe. I doubt that either journal wants you to "scrape" their content; scraping is specifically forbidden by the WSJ Terms of Use. I don't know how much easier ...


12

ClearAll[YandexTranslate]; YandexTranslate[string_String, lang_String, apikey_String: apikey] := StringCases[ URLFetch[ "https://translate.yandex.net/api/v1.5/tr.json/translate?key=" <> apikey <> "&text=" <> string <> "&lang=" <> lang <> "&format=plain" ], "[\"" ~~ x___ ~~ "\"]}" :>...


12

Since the Google Translate API requires authentication, a simple work around is to deploy as a web app a Google Apps Script that uses Google's LanguageApp, and then call that using URLExecute[]. To setup the Apps Script, go to script.google.com and create a new script with the following doGet function that uses the LanguageApp.translate method: function ...


11

You do not really need a tool to depoly your CDF to HTML. It is very simple to do by hand. Here is what I do open your text editor and create a file called index.htm <HTML> <BODY > This is my CDF <p> <script src="http://www.wolfram.com/cdf-player/plugin/v1.0/cdfplugin.js" type="text/javascript"></script><script type="...


10

To import as XMLObject is probably the cleanest approach, but since you asked for pattern matching I'll also post my answer which is similar to @nixeagle's but extracts instead the values together with their labels: src=Import["http://area51.stackexchange.com/proposals/4470/martial-arts","Source"]; StringCases[src, RegularExpression[ "<div\\s*class=\...


10

I've got my own package that I've used for a few years to generate LaTeX from Mathematica. All the labs on my Mathematica course page were produced with this package. Here's a handout on probability theory for Calc II students that was produced by the package. Unfortunately, it's not at all polished and really not usable by anyone but me. I can present ...


10

This will download the titles of all articles that transclude the Persondata template, if that's what you're trying to do. Flatten@NestWhileList[ Import["http://en.wikipedia.org/w/api.php?action=query&list=\ embeddedin&eititle=Template:Persondata&format=json&eilimit=500" <> If[Length@# > 1, "&eicontinue=" <> #[[2,...


10

This is an issue with XOWA. The HTTP Server was rewritten in v2.7.2 to handle POSTs and other features. However, it looks like it crashes on your request. I'll look at fixing this for v2.8.2. I'll comment again here when I have a resolution, but feel free to contact me directly for more info. Hope this helps! [Edit: This was fixed for v2.8.2. XOWA now ...


9

The deploy functionality was introduced in Mathematica 8.0.4. To my knowledge, it is not available in 8.0.1.0, see the changelog.


8

The different HTML entities are stored in System`Convert`MLStringDataDump`$HTMLEntities on version 9 and from here, it's a simple StringReplace: StringReplace["<select></select>", System`Convert`MLStringDataDump`$HTMLEntities] (* "&lt;select&gt;&lt;/select&gt;" *)


7

No one tried to solve this importing as plain text. So this is my answer using using only string patterns: src = Import["http://area51.stackexchange.com/proposals/4470/martial-arts", "Plaintext"]; With[{cmt = Whitespace~~comment:("Excellent"|"Needs Work"|"Okay")}, StringCases[ src, { grade:NumberString~~...


6

Something like: ExportString[Cell[TextData["<select></select>"],"Text"],"HTML","FullDocument" -> False] produces: <p class="Text"> &lt;select&gt;&lt;/select&gt; </p> which might also be a good start.


5

Just import the source of the page instead of its rendered content: Import["http://nyt.com", "Source"]


5

I don't know how robust this is, but this function seems to do what you want: ImportString[ ExportString[Delete[ImportString[#, "Table"], {{2}, {-2}}], "Table"], "HTML" ] &


5

The short answer is no, there is no straightforward (built-in) way to convert Mathematica's dynamic objects to non-proprietary HTML+SVG/JS. To see why, consider how you might try ti represent the following very simple example in HMTL/SVG? Manipulate[With[{pts = {#, Sin[a*#]} & /@ (x /. Quiet[Solve[Sin[a*x] == b*AiryAi[-x] && 0 < x < 10, ...


5

There's no easy way, it's a custom script that assembles the image out of individual slices, and it's written by someone who clearly didn't intend anyone to read it again (including himself). Reverse engineering. The script responsible is http://imgs.xkcd.com/clickdrag/1110.js, the image to be displayed is assembled in line 86 ($image=...). Scanning the ...


5

You can download all the original tiles using the following functions. 404 and file not founds are handled gracefully. I'm avoiding displaying to the FE so as to lower the chances of crashing. url[n1_Integer, d1_String, n2_Integer, d2_String] := "http://imgs.xkcd.com/clickdrag/" <> ToString@n1 <> d1 <> ToString@n2 <> d2 <> ...


5

Using JLink and Apache Commons Email and Java Mail it is not that hard to get MIME controlling working. I just modified some code I wrote some time ago (mostly for being able to send Email from within webMathematica) and added the ability to send HTML emails. It is a whole package with the jar files in subfolder and a Notebook with an example, so I hope it ...


5

I figure it's good to avoid trying to parse the String manually when we can have Mathematica turn it into an XMLObject for us with ImportString[string, {"HTML","XMLObject"}] which lends itself to more reliable parsing. It's not really simpler but should give less headaches down the line. Here is a quick demonstration, modifyXMLAttributes takes an XMLElement ...


5

Updated Using ToBoxes@Column[{Row[{"test", "1"}]}] we get TagBox[GridBox[{{TemplateBox[{"\"test\"", "\"1\""}, "RowDefault"]}}, <<omitted output>> That TemplateBox is strange because Row should have translated into RowBox. Let us force it: kubaExport[x_] := ExportString[ ToBoxes@x /. TemplateBox[a_, "RowDefault"] :> RowBox[a] // ...


5

Your code works fine—the site is just very stringent on the data supplied. I used Chrome's Inspect Element to see the values of all the input elements (including the hidden fields, as you'd noticed)—and I found that sometimes codigoColegio was left blank: It didn't work when I filled out codigoColegio to match nivel as you seemed to have done, but it did ...



Only top voted, non community-wiki answers of a minimum length are eligible