The MediaWiki API is good, fast, well-tested, and is usable within Mathematica for tasks that require authentication by using URLFetch. To login you need to send two POSTs. The second sends back a token that you receive from the first request. Then Mathematica automatically sets $HTTPCookies. This login function will be added to the utilities for the Wikicode project. Then you can request your watchlist once your Mathematica client has been authenticated. I use a loop to retrieve paged results if your watchlist is longer than 500 pages.
(* Returns True or False for success or failure *)
Login[username_String, password_String] :=
Module[{url = "http://en.wikipedia.org/w/api.php",
parameters = {"action" -> "login", "lgname" -> username,
"lgpassword" -> password, "format" -> "json"}},
MatchQ["result" /. ("login" /.
ImportString[
If[MatchQ[#, "NeedToken"],
URLFetch[url, "Method" -> "POST",
"Parameters" -> Append[parameters, "lgtoken" -> #2]],
Return@False] & @@ ({"result",
"token"} /. ("login" /.
ImportString[
URLFetch[url, "Method" -> "POST",
"Parameters" -> parameters], "JSON"])), "JSON"]),
"Success"]]
urlEncode[string_String] :=
StringReplace[string,
c : Except@
Flatten@{CharacterRange @@@ {{"A", "Z"}, {"a", "z"}, {"0", "9"}},
Characters["-_.~"]} :>
StringJoin[
"%" <> IntegerString[#, 16] & /@ ToCharacterCode[c, "UTF-8"]]]
(* retrieve watchlist and create hyperlinks *)
Hyperlink[#, "http://en.wikipedia.org/wiki/" <> urlEncode@#] & /@
Replace["title",
Flatten[Replace["watchlistraw",
Rest@NestWhileList[
ImportString[
URLFetch[
"http://en.wikipedia.org/w/api.php?action=query&list=\
watchlistraw&format=json&wrlimit=500" <>
If[Length@# > 1, "&wrcontinue=" <> #[[1, 2, 1, 2, 1, 2]],
""]], "JSON"] &, {}, Length@# != 1 &]], 1]]
Import
is never going to work. You need to show us what code you have tried -- obviously replace actual user name and password with generic strings. $\endgroup$