苏宁爬虫源代码与实际页面不符

本人小白,刚刚入门爬虫,用seleniem+beautifulsoup爬取苏宁手机数据,现在有一个问题,用seleniem模拟打开网页得到的源代码
中的手机数与实际在网站中看到的不符。苏宁手机第一页一共120个手机,但是源代码只到前30个,求教大佬

1个回答

你打开的第一页,其实在你往下划的时候网页加载了XHR,所以你使用seleniem也需要模拟下滑

driver.execute_script("window.scrollBy(0,500)")  ##下滑500个像素

在加载后,在进行爬取

https://blog.csdn.net/weixin_39416561/article/details/82018864 个人使用requests 爬取苏宁店铺商品信息的代码,希望能帮到你

reclusem
reclusem 回复weixin_39416561: 我懂啦!太感谢啦!!
一年多之前 回复
weixin_39416561
lyhsdy 回复reclusem: 如果是GET的话,这种下拉的一般不会出现在源码上,都是通过XHR加载的,所以你get的网址不是https://m.suning.com/list/20006-0.html而是 https://search.suning.com/emall/mobile/wap/clientSearch.jsonp?cityId=020&keyword=&channel=&cp=1&ps=10&st=0&set=5&cf=0&iv=-1&ci=20006&ct=-1&channelId=WAP&sp=&sg=&sc=&prune=&operate=0&isAnalysised=0&istongma=1&v=99999999&sesab=ABB&&jzq=1535&callback=success_jsonpCallback 其中cp=后面的是页数
一年多之前 回复
reclusem
reclusem 回复weixin_39416561: 我爬的网址是这个:https://list.suning.com/0-20006-0.html之前用的是selenium模拟翻页再获取源代码,这种情况不下拉的话第一页稳定30个,其他页数手机数量比较多,但是有时候不是很固定,至少有90+。现在我不用模拟翻页了,直接get不同的url,网址规律是https://list.suning.com/0-20006-页码-1).html,现在的话无论下不下滑,无论延时与否,每页都是稳定30个
一年多之前 回复
weixin_39416561
lyhsdy 你怕的网址是不是这个:https://m.suning.com/list/20006-0.html下拉后的数据是在源码上的,你可以测试下先不下拉,在查看源码上找到多少个商品,然后下拉后再看有多少个;如果下拉后源码数量和商品数量是一样的,但你的seleniem没有抓到,可以试下延时后爬取
一年多之前 回复
reclusem
reclusem 我加了模拟下滑了,现在的情况是每页都只有30个。。。
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问