Ris*_*shi 3 python beautifulsoup web-scraping
我试图从www.flipkart.com抓取所有手机.现在,我想到的是我可以从这里刮掉所有手机.
http://www.flipkart.com/mobiles/pr?p[]=sort%3Dprice_asc&sid=tyy%2C4io&layout=grid
Run Code Online (Sandbox Code Playgroud)
现在,问题是,在这个网站上我必须按" 显示更多结果 "才能看到更多结果.但是,我怎么能用代码呢?我在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'})
Run Code Online (Sandbox Code Playgroud)
我只得到输出的第一页?我如何访问其他页面?
你可以使用get参数.常规网址是:
http://www.flipkart.com/mobiles/pr?p[]=sort%3Dprice_asc&sid=tyy%2C4io&layout=grid
点击"更多结果"按钮(或向下滚动)后,使用带有以下网址的AJAX加载下一页:
网址由以下部分组成:
如果你想要所有手机,只需增加'开始'参数即可.像这样的东西:
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
Run Code Online (Sandbox Code Playgroud)
享受,Wout
| 归档时间: |
|
| 查看次数: |
2600 次 |
| 最近记录: |