Skip to content

爬虫 用doc.select("li[data-asin]") 来得到这一页内result_id的数量,为什么每次不一样 #30

Description

@bluecode2017

老师,我在写爬虫作业 增加paging时遇到点疑问:

老师的代码里是用doc.select("li[data-asin]") 来得到id的数量,然后拼出每个product的detail link. 比如

//detail url
String detail_path = "#result_" + Integer.toString(i) + " > div > div > div > div.a-fixed-left-grid-col.a-col-left > div > div > a";

我也利用了这个方法,为了看的清楚,省略了解析每页产品的那部分代码,代码是

Elements results = doc.select("li[data-asin]");
System.out.println("this url page has num of results = " + results.size());

代码:
image
我发现,编译后代码,每次执行的时候,results.size() 就是这个页面里面的li[data-asin] 的数量每次执行不一样,有时候18,有时候20.。这是为什么呢? 这种变化,会导致这一页的产品取出来不对。
但是我到Amazon里用inspect看的话,都是18个产品,应该是 page1 0-17 page1 16-33, page2 32-49
但是现在results.size()每次不同,导致我得到的产品序号也不对了。所以爬出来的也不对

请帮忙看看是什么问题,


具体请看下截屏

我去Amazon看第2页时是看就18个
image

编译后,执行一次:

image

马上执行第二次

image

奇怪啊,page=2的时候,有时是是18,有时候是20,其他页也是。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions