动态抓取
在开始爬取动态网页之前吗,我们还需要了解一种更新的技术——AJAX(Asynchronous Javascript And XML,异步JavaScript和XML)。它的价值在于通过再后台与服务器进行少量数据交换就可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下对网页的某部分进行更新。一方面减少了网页重复内容的下载,另一方面节省了流量,因此它得到了广泛的应用。
如果使用AJAX加载的动态网页,怎么爬取里面动态加载的内容呢?有两种方法:
(1)通过浏览器审查元素解析地址
(2)通过selenium模拟浏览器抓取
#使用selenium打开浏览器和一个网页
from selenium import webdriver
driver=webdriver.Firefox()
driver.get("http://www.dianping.com/search/category/7/10/p1")
使用json库
从json数据中来提取评论,上述结果比较杂乱,其实这些是json数据,我们可以用json库来解析数据,从中提取想要的数据。
import json
json_data=json.loads(r.text) #使用jison.loads把字符串格式得响应体数据转化为json数据。
comment_list=json_data['data']['comments'] #利用接送数据得 结构提取评论的列表comment_list
for eachone in comment_list: #最后用for循环提取其中得评论文本
message=comment_list[eachone]['content']
print(message)