ajax抓取网页内容(如何抓取ajax形式加载的网页数据(一)_恢复内容开始)

优采云 发布时间: 2021-09-16 04:17

  ajax抓取网页内容(如何抓取ajax形式加载的网页数据(一)_恢复内容开始)

  ---恢复内容启动---

  以下是如何获取以Ajax形式加载的网页数据的记录:

  目标:获取“%E5%89%A7%E6%83%85&type=11&interval\u id=100:90&action=“”下的网页数据

  步骤1:网页数据分析——特性:当列表栏滚动到页面底部时,数据自动加载,页面的URL不变

  步骤2:使用Fiddler捕捉数据包,如下图所示:

  图1:请求数据

  

  图2:表格

  

  数据规则是通过捕获数据包得到的:图2的from表单中对应的start数据和图1的URL中对应的start数据随着每次加载而增加,其他数据不变,根据这个规律,我们可以构造相应的请求来获取数据

  注意,数据形式是JSON

  代码如下:

  1).urllib形式

  import urllib2

import urllib

#此处的url为上述抓包获取的url去掉start以及limit,start以及limit数据后边以form表单的形式传入

url = ' https://movie.douban.com/j/chart/top_list?type=11&interval_id=100%3A90&action='

#请求投信息,伪造成浏览器,方式被反爬虫策略拦截

headers = {"User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0"}

#构建form表单

formdata = {

"start":"20",

"limit":"20"

}

#urlencode()urllib中的函数,作用:将key:value形式的键值对转换为"key=value"形式的字符串

data = urllib.urlencode(formdata)

#构建request实例对象

request = urllib2.Request(url,data=data,headers=headers)

#发送请求并返回响应信息

response = urllib2.urlopen(request)

#注意此处的数据形式并不是html文档,而是json数据

json = response.read()

print html

  2).request获取库的请求代码

  #coding=utf-8

import requests

url = ' https://movie.douban.com/j/chart/top_list?type=11&interval_id=100%3A90&action='

headers = {"User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0"}

data = {

"start":"20",

"limit":"20",

}

response = requests.get(url,params = data,headers = headers)

print response.text

  3).request申请图书馆

  #coding=utf-8

import requests

url = ' https://movie.douban.com/j/chart/top_list?type=11&interval_id=100%3A90&action='

formdata = {

"start":"20",

"limit":"20"

}

headers = {"User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0"}

response = requests.post(url,data=formdata,headers=headers)

print response.text

  ---恢复期结束---

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线