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

优采云 发布时间: 2021-11-14 19:03

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

  ---恢复内容开始---

  下面记录如何抓取ajax形式加载的网页数据:

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

  第一步:网页数据分析-----》特点:当列表栏滚动到页面底部时,数据自动加载,页面的url没有变化

  第二步:使用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人工客服


线