Python爬虫 Ajax数据爬取
X-Requested-With: XMLHttpRequest
header头中有以上标识为ajax异步信息,爬取需要的方法
https://www.cnblogs.com/zheng1076/p/11133695.html
AJAX 是一种用于创建快速动态网页的技术。 这种技术使我们可以通过在后台与服务器进行少量数据交换,从而使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,浏览器可以对网页的某部分进行更新。
此时想要获取数据,就要考虑它是通过什么传递新的信息给我们。
实际就是python对动态网页、异步加载的爬取。
一、方法分析
其实任何动态产生的内容,要么是本地计算,要么是从服务器获取的。前者看js,后者需要抓包。而后者经常配上各种参数加密,不过既然浏览器能正确发送参数,那么就证明肯定有办法模拟(当然不容易)。可以模拟发包,也可以用现成的包来模拟操作浏览器。
那么通常来讲,获取动态数据有两种思路或者说是方法:
- 分析页面请求
- 利用selenium模拟浏览器行为或其他抓包工具直接获取
效率最高的就是分析出请求数据的URL 一般都可以 而selenium 实在没辙的时候再用。
修改Request-Headers中Cookie,User-Agent,Referer等信息来使我们的访问请求就像是真人访问一般。而需要修改的内容可以在Headers中查看:
headers={'Cookie':'yfx_c_g_u_id_10000042=_ck18012900250116338392357618947; VISITED_MENU=%5B%228528%22%5D; yfx_f_l_v_t_10000042=f_t_1517156701630__r_t_1517314287296__v_t_1517320502571__r_c_2',
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.119 Safari/537.36',
'Referer':'http://www.sse.com.cn/assortment/stock/list/share/'
}