jsoup

jsoup

(11)获取商品详情(返回jsonp数据)


京东的商品详情是单独发起的



 
 
  1. /
  2. * 获取商品详情
  3. * @param id:商品id
  4. * @return 商品详情
  5. */
  6. public String getItemDes(String id){
  7. String itemDesUrl = http://d.3.cn/desc/+id;
  8. try { //jsonp的数据要用.execute().body()来获取
  9. String itemDesJsonp = Jsoup.connect(itemDesUrl).ignoreContentType( true).execute().body();
  10. String itemDesJson = itemDesJsonp.replace( “showdesc(”, “”);
  11. itemDesJson = itemDesJson.substring( 0, itemDesJson.length()- 1);
  12. JsonNode itemDesJsonNode = Mapper.readTree(itemDesJson);
  13. String itemDes = itemDesJsonNode.get( “content”).asText();
  14. return itemDes;
  15. } catch (Exception e) {
  16. return null;
  17. }
  18. }
  19. @Test
  20. public void getItemDes_test() throws IOException{
  21. String id = “6055054”;
  22. String text = getItemDes(id);
  23. logger.debug(text);
  24. }


(12)从商品页面拿到商品信息,落地:存入数据库


 
 
  1. package com.jt.jsoup4JD.pojo;
  2. import java.util.Arrays;
  3. public class Item{
  4. private long id;
  5. private String title;
  6. private String sellPoint;
  7. private long price;
  8. private Integer num;
  9. private String barcode;
  10. private String image;
  11. private String[] images;
  12. private long cid;
  13. private Integer status;
  14. private String itemDesc;
  15. public String getItemDesc() {
  16. return itemDesc;
  17. }
  18. public void setItemDesc(String itemDesc) {
  19. this.itemDesc = itemDesc;
  20. }
  21. public String[] getImages() {
  22. return image.split( ",");
  23. }
  24. public void setImages(String[] images) {
  25. this.images = images;
  26. }
  27. public long getId() {
  28. return id;
  29. }
  30. public void setId(long id) {
  31. this.id = id;
  32. }
  33. public String getTitle() {
  34. return title;
  35. }
  36. public void setTitle(String title) {
  37. this.title = title;
  38. }
  39. public String getSellPoint() {
  40. return sellPoint;
  41. }
  42. public void setSellPoint(String sellPoint) {
  43. this.sellPoint = sellPoint;
  44. }
  45. public long getPrice() {
  46. return price;
  47. }
  48. public void setPrice(long price) {
  49. this.price = price;
  50. }
  51. public Integer getNum() {
  52. return num;
  53. }
  54. public void setNum(Integer num) {
  55. this.num = num;
  56. }
  57. public String getBarcode() {
  58. return barcode;
  59. }
  60. public void setBarcode(String barcode) {
  61. this.barcode = barcode;
  62. }
  63. public String getImage() {
  64. return image;
  65. }
  66. public void setImage(String image) {
  67. this.image = image;
  68. }
  69. public long getCid() {
  70. return cid;
  71. }
  72. public void setCid(long cid) {
  73. this.cid = cid;
  74. }
  75. public Integer getStatus() {
  76. return status;
  77. }
  78. public void setStatus(Integer status) {
  79. this.status = status;
  80. }
  81. @Override
  82. public String toString() {
  83. return “Item [id=” + id + “, title=” + title + “, sellPoint=” + sellPoint + “, price=” + price + “, num=” + num
  84. + “, barcode=” + barcode + “, image=” + image + “, images=” + Arrays.toString(images) + “, cid=” + cid
  85. + “, status=” + status + “, itemDesc=” + itemDesc + “]”;
  86. }
  87. }


 
 
  1. /
  2. * 从商品页面拿到商品信息,落地:存入数据库
  3. * @param url:某个商品页面的链接
  4. * @return 返回一个商品类
  5. * @throws IOException
  6. */
  7. public Item getItem(String url) throws IOException{
  8. Document doc = Jsoup.connect(url).get();
  9. Item item = new Item();
  10. //设置id
  11. String id = getItemId(url);
  12. item.setId(Long.parseLong(id));
  13. //设置title
  14. String text = getTitle(doc);
  15. item.setTitle(text);
  16. //抓取卖点
  17. String sellPoint = getSellPoint(id);
  18. item.setSellPoint(sellPoint);
  19. //获取价格
  20. long price = getPrice(id);
  21. item.setPrice(price);
  22. //获取图片
  23. String image = getImage(doc);
  24. item.setImage(image);
  25. //获取商品描述
  26. String itemDes = getItemDes(id);
  27. item.setItemDesc(itemDes);
  28. return item;
  29. }
  30. @Test //从商品页面拿到商品信息,落地,存入数据库
  31. public void getItem_test() throws IOException{
  32. String url= http://item.jd.com/6055054.html;
  33. Item item = getItem(url);
  34. System.out.println(item.toString());
  35. }




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值