基于AJAX的全面爬虫教程及案例一

AJAX介绍和应用场景

基于AJAX的网页,属于动态加载内容,一种异步加载网页技术,主要用于创建快速动态网页。
AJAX=Asynchronous JavaScript and XML
例如,你打开一个购物网站,划到底下,页面继续加载,然后又出现一大片页面,然后又划到下面,又继续。
另一场景是,当你点击“查看详情”,“更多详情”时,网页又进行了加载,而加载内容在原页面的源代码里面找不到,比如按Ctrl+F 查到不到。
这类就是基于AJAX的加载技术。核心是创建XMLHttpRequest对象,并向服务器发送请求,在不重新加载整个页面的情况下,对网页的某部分进行更新。传统的网页(不使用AJAX)如果需要更新内容,必需重载整个网页。
Ajax技术的核心是XMLHttpRequest对象(简称XHR,即AJAX创建XMLHttpRequest对象,并向服务器发送请求),可以通过使用XHR对象获取到服务器的数据,其格式可以是XML或JSON等格式。

Json和XML格式和区别

XML格式如下:

<name>中国</name>
  <province>
    <name>黑龙江</name>
    <citys>
      <city>哈尔滨</city>
      <city>大庆</city>
    </citys>    
  </province>

Json格式如下

{ name: "黑龙江", citys: { city: ["哈尔滨", "大庆"]} },
{ name: "广东", citys: { city: ["广州", "深圳", "珠海"]} },
{ name: "台湾", citys: { city: ["台北", "高雄"]} },
{ name: "新疆", citys: { city: ["乌鲁木齐"]} }

一个是<city>........</city>成对出现——XML
一个是{ name: "新疆", citys: { city: ["乌鲁木齐"]} }括号成对出现

AJAX爬虫案例含代理和User-agent设置及POST请求

方法一:requests方法:快 灵活
首先,准备免费代理:https://www.kuaidaili.com/free/inha/亲测可用
比如https://171.35.222.120:9999
打开需要爬取的网站,打开开发者工具(按F12)
切入到Network–XHR
回到网页,往下划页面,在network下发现新请求
然后回到开发者工具,在preview里面查看 需要爬取的内容是不是在这个文件里面
找到请求文件
本案例如图所示,URL在general里面,Request method为POST。
针对AJAX的爬虫,需要额外注意请求头 headers
务必要完整,尤其要包括x-requested-with和x-id
否则请求到的反应response很可能是502 Badways
或者是response200 但是内容空白,没有需要的信息
因为是POST,然后提取POST需要的所有信息:如下

"""
headers:
Request URL: https://www.dealmoon.com/www/category/ajax-load?lang=cn
x-requested-with: XMLHttpRequest
x-tingyun-id: TWXvR2MAteU;r=395625467

Formdata:
showType: list
lang: cn
sort: time
endTime: 1582389867  #这个数字为时间戳
queryString: 
searchType: relevance
expired: n
pageNum: 2  #页面数
category: beauty
"""

                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值