python – 刮掉Flipkart.com的所有手机
我试图从www.flipkart.com抓取所有手机.现在,我想到的是我可以从这里刮掉所有手机.
http://www.flipkart.com/mobiles/pr?p[]=sort%3Dprice_asc&sid=tyy%2C4io&layout=grid 现在,问题是,在这个网站上我必须按“显示更多结果”才能看到更多结果.但是,我怎么能用代码呢?我在python中使用BeautifulSoup包. 我的代码到现在为止: import bs4 import re import urllib2 import sys link = 'http://www.flipkart.com/mobiles/pr?p[]=sort%3Dprice_asc&sid=tyy%2C4io&layout=grid' response = urllib2.urlopen(link) thePage = response.read() soup = bs4.BeautifulSoup(thePage) allMobiles = soup.find('div',attrs={'id': 'products'}) 我只得到输出的第一页?我如何访问其他页面? 解决方法
你可以使用get参数.常规网址是:
http://www.flipkart.com/mobiles/pr?p[]=sort=price_ascu0026amp;sid=tyy,4iou0026amp;layout=grid 点击“更多结果”按钮(或向下滚动)后,使用带有以下网址的AJAX加载下一页: http://www.flipkart.com/mobiles/pr?p%5B%5D=sort%3Dprice_asc&sid=tyy%2C4io&layout=grid&start=41&ajax=true 网址由以下部分组成: >路径:http://www.flipkart.com/mobiles/pr > p []:sort = price_asc 如果你想要所有手机,只需增加’开始’参数即可.像这样的东西: item_count = 600 for i in range(0,item_count,40): link = "http://www.flipkart.com/mobiles/pr?p%5B%5D=sort%3Dprice_asc&sid=tyy%2C4io&layout=grid&ajax=true&start=%d" % (i+1) // Do something with the link print link 请享用,Wout的 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |