C/C++教程

爬取Macy网用户评价日志(0): 项目介绍和需求分析,任务设计

本文主要是介绍爬取Macy网用户评价日志(0): 项目介绍和需求分析,任务设计,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
  1. 1.  背景叙述;

因为本项目的目的是:爬取所有产品的价格、图片、标题、评论信息。

1) 打开macy网页面:macy网,一共要经过四层url链接能够到达具体产品信息页面。如图所示。

 

图1. Macy首页面

 

图2. Women下分类页面

 

 

图3. WomenàTops下分类页面

 

 

图4. WomenàTopsàproduct1具体产品页面

 

2) 根据上述url链接,我们可以发现,如果想要爬取具体产品的信息和评论。我们首先要获得所有产品具体产品页面的地址,即url.那么根据我们在上述四级页面来看,我们一共要做如下几个动作。

a)   从首页,爬取所有二级页面url;即Women, Men, 等等的url。

b)   从二级页面,爬取所有三级页面url;即Women下,Tops等等的url.

c)   从三级页面,爬取所有四级页面url;即WomenàTops下,Tops1, Tops2等等的url,就是具体的产品页面。

3) 当我们获得了所有产品的url之后,我们就可以向每一个url发送具体的访问请求。然后,解析response,从response中匹配关键目录。得到具体的产品信息。我们打开具体产品页的网页源代码。检查发现产品价格、名称等信息属于静态页面里面的信息,可以使用Xpath或者re模块进行匹配。

 

图5. 产品名于html中可查

 

图6. 产品价格可查

4) 对于评论方面,我们发现评论分为两个部分。基于ratings的静态页面部分和基于具体review的动态页面部分。如图7、8

 

图7. 评论的静态部分

 

 

图8. 评论的动态部分

5) 对于评论的动态部分,我们发现当我们刷新下一页评论的时候,具体产品的url并没有发生任何变化。变化的仅仅是10条评论。如图9.因此,我们通过Network—>fetch/XHR查找具体评论包。如图10.查看评论包的具体详情。

 

图9. Page变化,url没变化

 

图10.评论包详细资料

查看包中有一个叫做review的包,打开后将选项换到preview进行package预览,发现确实是我们要找的具体review信息,因此,我们查看Headers查看请求方式,如图11.为package的具体请求头。我们发现General中的Request Method为GET方式,不是Post方式,因此整个问题变得简单很多,我们只需要对不同的review的Request URL发起请求就行。

 

图11. Review Package的Headers

 

  1. 2.  任务设计;

因此,整个项目,我们具体需要完成以下几个动作。

a)   Step1. 爬取具体产品url;

         i.      从首页,爬取所有二级页面url;即Women, Men, 等等的url。

        ii.      从二级页面,爬取所有三级页面url;即Women下,Tops等等的url.

      iii.      从三级页面,爬取所有四级页面url;即WomenàTops下,Tops1, Tops2等等的url,就是具体的产品页面。

b)   Step2. 根据具体产品url,爬取具体产品url下的价格和评论等信息;

         i.      在获取到具体产品的url后,向该url发出请求。根据响应匹配商品价格、商品名称等。

        ii.      在获取到具体产品的url之后,向该url发出请求。根据响应,解析html,查看review规则。根据review规则发送review请求,获得review包。根据包中的request URL发送review请求。存储review信息。

这篇关于爬取Macy网用户评价日志(0): 项目介绍和需求分析,任务设计的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!