创新项目实训(十)
前言
我们组打算搭建一个国内旅游比价网站,
而我负责的部份是各大订酒店网站的数据获取及整理
主要参考版上的经验分享+自己的修改理解
小白0经验入门记录、边爬边学习ing
有错误或更好的建议都可以指教讨论
艺龙网站分析
透过马蜂窝上的接口只能获取价格,星级、评论数、用户评分没法得到,
所以我们还是要透过艺龙网站获取除价格外的资讯
透过关键字(酒店名)搜索网站
点DOC可以看到网页里除了价格要登录查看外,
其他的资讯都有
参数只要关键字就好
get_info(name):
url = 'http://hotel.elong.com/search/list_cn_0101.html?keywords={}'.format(p.quote(name))
header = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36 Edg/90.0.818.66',
'Host': 'hotel.elong.com',
'Proxy-Connection': 'keep-alive',
'Cookie': 自己的cookie
}
res = requests.get(url=url, headers=header)
selector = Selector(res.text)
#用xpath提取
score = selector.xpath('//span[@class="c555 block mt5"]/@data-score').extract()[0]
count = selector.xpath('//span[@class="c555 block mt5"]/b/text()').extract()[0]
star = selector.xpath('//p[@class="h_info_b1"]/b/@class').extract()
if star == []:
star = '经济型'
else:
star = ''.join(list(filter(str.isdigit, star[0])))
id = selector.xpath('//span[@method="gotodetail"]/@data-link').extract()[0].strip('/')
print(name,id,star)
print(score,count)
酒店名、酒店id、星级
用户评分、用户评论数