海外翻墙免费加速器:[入口]
1、寻找异步加载的接口
通过谷歌浏览器的Network查找,一般异步加载常见的有两个可能:XHR,JS。所以我们在点击进行响应时,只要观察这两项加载的内容就可以清晰的知道接口的地址。(需要注意的是:Request常用的有两种情况,1.get 2. post)
get的情况:查看Request URL
post的情况:在写脚本的时候需要加上data数据,要不然无法访问获取数据。
2、获取接口之后就是要查看接口里面的数据
一般json的数据都是字典数列组成的,可以通过http://json.cn/查看,是否是json格式。(要注意的是复制的时候要复制源码,而不是展示的代码)。
3、使用json获取想要的信息
3.1 一般的使用方法就是 json(名字随意写)=cont(获取接口的源码的内容).json() (固定格式)。
3.2 一般还要用到数列的一些方法,比如遍历数列 for i in list,获取字典内容 list[‘data’]。
4、demo
获取马蜂窝http://www.mafengwo.cn/jd/52314/gonglve.html,亚洲全部景点的名称。
#coding=utf8
import requests
import re
import json
from bs4 import BeautifulSoup as bs
headers = {
‘User-Agent’:’Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.87 Safari/537.36′,
}
for i in range(1,3277):
print “page=”+str(i)
data={
‘sAct’:’KMdd_StructWebAjax|GetPoisByTag’,
‘iMddid’:’52314′,
‘iTagId’:’0′,
‘iPage’:i,
}
url = ‘http://www.mafengwo.cn/ajax/router.php’
cont=requests.post(url,headers=headers,data=data)
json=cont.json()
list1=json[‘data’][‘list’]
soup=bs(list1,”html.parser”)
href=soup.find_all(‘a’)
for i in href:
name=i[‘title’]
print name
未经允许不得转载:陈海飞博客 » Python如何抓取异步加载数据