爬虫获取ajax异步请求的html内容

使用爬虫时有时会发现浏览器中看到的html内容在程序get()的结果中看不到,这是因为页面中使用了ajax技术,即在加载页面时不一次性发出所有内容,浏览器收到第一次发出的页面内容后运行其中的程序,再向服务器请求部分内容构成完整页面,用爬虫只能得到第一次发出的html,导致无法得到所需内容。

此处::befer和::after之间的部分在使用爬虫的get()方法得到的html中看不到,因为这是异步加载的。

此时可以选择network标签,刷新页面,在name文件列表中找到包含所需内容的文件,这就是页面程序运行后向服务器请求的第二部分数据

在headers标签中显示了生成该文件的请求信息,在本例中可以看到是向https://www.bjotc.cn/front/ajax_getGuaPaiQiYeList.do发出了post请求,请求参数在最下方form data中,

点击viewsource可以看到参数形式为key=113%2C-1&page=1,在浏览器中输入https://www.bjotc.cn/front/ajax_getGuaPaiQiYeList.do?key=113%2C-1&page=1即可看到获取的信息,接下来就可以使用爬虫对该链接发出请求,爬取原来无法获取的信息!

猜你喜欢

转载自blog.csdn.net/qq_29347295/article/details/81454230