您的位置:首页 > Web前端 > JavaScript

Jsoup 抓取网页信息(2) 需要Login的网页信息抓取

2015-10-13 05:46 381 查看
有时候抓取网页信息的时候,有些网页需要先登录才能查看到真正的内容。这样用我们上一篇文章的方法是无法直接抓取数据的。

Jsoup 抓取网页信息(1) 抓取 国际疾病码

例如抓取网页:http://www.findacode.com/code-set.php?set=CPT 上的 CPT codes

登录前,显示如下:



登录后显示:



我们要抓取的信息是登录后显示的内容。

解决这个问题的方法很简单。Jsoup给我们提供了cookies的功能,我们只要将我们自己账号登录的cookies传递给Jsoup就可以实现登录用户的访问。

1。 首先,登录自己的账号。

2。然后,在chrome中 Chrome -> setting->Content settings->Cookies->"All cookies and site data" 找到find www.findacode.com 对应的cookies

如下图:


从图中可以看出这里有4个cookie的键值我们需要关心。

3。使用Jsoup 加载cookies

Map<String, String> cookies = null;
cookies = new HashMap<String, String>();
        cookies.put("PHPSESSID", "pue5b6f642cu21v7qun47hs3b5");
        cookies.put("__ar_v4", "CQJDWEV345EJ7P3MLKOZX3%3A20151008%3A3%7CZFX3A7FMXJARPKT2GZ64XZ%3A20151008%3A3%7CYUDUMC5DENC6LMIX6UQP3E%3A20151008%3A3");
        cookies.put("fac_type", "F");
        cookies.put("show_sign_in", "T");

Document doc = Jsoup.connect(pageUrl).cookies(cookies).get();

...


4。连接成功后,使用第一篇文章的方法抓取数据。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: