ajax请求页面刷新以豆瓣电影旁排行榜为例子

首先我们思考一下下面几个问题。
#如何减少请求次数获得更多的请求数据?
#分析页面地址参数

比如

'https://movie.douban.com/j/chart/top_list?type=5&interval_id=100%3A90&action=&start=0&limit=20
#这个网页的start limit参数。
#limit代表请求的数量。
#start是标记已请求数量与服务器保持一致。

接下来就很明白,只要增大limit=  参数大小就可以请求更多数据。

ps:不要过多请求

到了这里还有一个问题,如果一次请求过多,可能会导致封ip。

怎么解决呢?

#我们可以使用线程睡眠来控制获取数据的速度
#线程睡眠头文件
from time import sleep

#在循环体中加入sleep(),参数是mm,整型
#例如
while True:
    sleep(30)
#每间隔30mm后继续执行。
    

完整程序

#向服务器申请新请求更新页面
from urllib.request import Request,urlopen
#线程睡眠
from time import sleep
url = 'https://movie.douban.com/j/chart/top_list?type=5&interval_id=100%3A90&action=&start=20000000&limit=20'

string = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36"

headers = {
    "User-Agent":string
}
i = 0
base_url = 'https://movie.douban.com/j/chart/top_list?type=5&interval_id=100%3A90&action=&start={}&limit=20'
while True:
    req = Request(base_url.format(i * 20),headers = headers)
    resp = urlopen(req)
    info = resp.read().decode()
    print (info)
    if info =='[]':
        break
    else: 
        i +=1
    # 线程睡眠
    sleep(3)

 

文章已创建 80

发表评论

电子邮件地址不会被公开。 必填项已用*标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部