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

来源:互联网 发布:qq三国js所有技能 编辑:程序博客网 时间:2024/06/05 11:05

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

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。连接成功后,使用第一篇文章的方法抓取数据。

0 0
原创粉丝点击