携程酒店评论爬虫心得
这次爬取数据,遇到了不少的困难,也走了很多弯路,特此写下帮助记忆。以下基本是我爬取数据的过程,前半段是弯路,可直接绕过,后半段是解决方法。
打开携程,南京YMCA酒店页面,可以发现如下布局:
其中,酒店点评是我要找的内容。
一般来说,抓取内容采用 requests+xpath。如下:
import requests
from lxml import etree
url = 'http://hotels.ctrip.com/hotel/1678723.html?isFull=F#ctm_ref=hod_sr_lst_dl_n_1_1'
s = requests.get(url).text #获取网页内容
body = etree.HTML(s) #解析网页,用于网页各内容的定位
#以用户名来做实验
user_name = body.xpath('//*[@id="divCtripComment"]/div[4]/div[12]/div[1]/p[2]/span/text())
print(user_name)
结果显示正常,但是可以由图1看到,酒店点评是进行翻页的,存在下一页按钮,以及页码搜索框等。
因此,如果要获取不同页面的内容,需要有每一页的索引。
但是此处,点击下一页,网页的url不改变。
初步确定为”动态加载。
寻找url的过程比较长久。分别包含以下:
1. 关闭JavaScript,可以发现每一页有一个独立的url。
但是,将