Python爬虫采集Tripadvisor数据案例实现
作者:松鼠爱吃饼干 时间:2022-01-28 14:54:28
前言
Tripadvisor是全球领先的旅游网站,主要提供来自全球旅行者的点评和建议,全面覆盖全球的酒店、景点、餐厅、航空公司 ,以及旅行规划和酒店、景点、餐厅预订功能。
Tripadvisor及旗下网站在全球49个市场设有分站,月均独立访问量达4.15亿。
第三方库
requests >>> pip install requests
parsel >>> pip install parsel
开发环境
版 本: python 3.8
编辑器: pycharm 2021.2
开始代码
请求数据
headers = {
'cookie': 'TADCID=foOmU9bDp6JGIXg2ABQCFdpBzzOuRA-9xvCxaMyI12wTEaQSQ4euq_1sNSDmJybFCMezFLrAnKRGZ_uvGNNO_9cSzuJeK8RQlE4; TAUnique=%1%enc%3AHARC1EMLan58P07MI4ZMcqI%2BzHGWuLGBt6TE6zQDNwk%3D; TASSK=enc%3AAL%2Bm9xwFy7%2BjYONIRS%2F2kEbA%2FtOrlDbcW%2FwCSHs44XP9R3ddE%2BKJxi3FiDuozLe0Ov2ujtnFah8i0sN%2FRdUxZGis0TClwsaz7%2B7Uv8dh%2BvHM%2FfH9C%2FcEYLBYBtn1yLmBNg%3D%3D; ServerPool=A; PMC=V2*MS.2*MD.20220311*LD.20220311; TART=%1%enc%3AfD9OzCOGTHLKxR1qLNfmGZurd9xliidHT5bmQw2z505WnDQeBJdPDWc64WFlxikpNox8JbUSTxk%3D; TATravelInfo=V2*A.2*MG.-1*HP.2*FL.3*RS.1; TASID=9CCF4EA45B4141A8B5E4F03D36821474; ak_bmsc=31083286436C157F558D959D23D94849~000000000000000000000000000000~YAAQqF1kX6lPsVF/AQAAhTyqdw8F4+OoWZwjJCqsKUS/ykkFQHkXml5We7WY4q6KDUeIkm36a0Fs41jt7Jx6MFwnzloND2Iry1Iuwnj5I7oPxsI1RTjfGXSr408rscnzKPJHpRIXwuuiL+SNZxp233DOhrqrbTQ2cDTiGPk8qAYcLYq1OHpyOjLpc6L2zPbiSdvfDAuz2ujLUbWZV33YVrUd1UcmBMKJOSS/C12JeFdLCcjOihJvc4Zlu5HMYQUBdjTaV4zll3YO9YWxdm5pUT57vjI3WjxNhLwOXS93F3ogo/VOzmvk2n4rptCDH1vffz7Dpmp4yRn0dnX8RtiKiolFV00rBs0yC9Nxa67F0qPkJMMS6t6pNo+08PIre7VIiAIxQoWUNNiBiNDXeQ==; PAC=AHc5Ocqizh5jbN81AnjCtcF7k5P54vojrezhxeu8s4DdhkIZSMBuxXUioaVGVVo99Ysr_IbYXqNKjsddfzI8psluCp1NwuwQiBOvmdhP_r8ntVPeHXBc5u782Y8i4KrpV0a29aTnmykzihOxeEfilEfHZOGZxkWN8GRLwHay1MUpBazo7e4Pdtl3tndoYnNIDWcRtHzZJIDE9odWhqOzUE0%3D; TAReturnTo=%1%%2FRestaurants-g188590-Amsterdam_North_Holland_Province.html; roybatty=TNI1625!AJyUZ5ejQVombB9Jv3PVhqqhyMhwsanzT2C6omYz8l6mQNt%2FP5v6CLnnlymNXfhMwolnHznm%2BAmT81YSeygcVxnWHERn16eR747rX9fmWmeCMoris6ffxKTbJ6%2BjObZ6rmffv7I5wEGZ009WzKMlVA%2BXJAheGoIKHOD3gUDLVYlY%2C1; TATrkConsent=eyJvdXQiOiIiLCJpbiI6IkFMTCJ9; TASession=V2ID.9CCF4EA45B4141A8B5E4F03D36821474*SQ.9*LS.PageMoniker*GR.82*TCPAR.12*TBR.1*EXEX.98*ABTR.74*PHTB.27*FS.67*CPU.8*HS.recommended*ES.popularity*DS.5*SAS.popularity*FPS.oldFirst*LF.en*FA.1*DF.0*TRA.false*LD.188590*EAU._; TAUD=LA-1646980142821-1*RDD-1-2022_03_11*LG-863371-2.1.F.*LD-863372-.....; _pbjs_userid_consent_data=3524755945110770; _li_dcdm_c=.tripadvisor.com; _lc2_fpi=b140173de591--01fxvvhm5q52dte42gshbn1234; __gads=ID=887c76ae8964a5bc:T=1646981079:S=ALNI_MYwTZNsJPdidCGF3BTM3pOV79wAUg; _lr_sampling_rate=100; _lr_retry_request=true; _lr_env_src_ats=false; __li_idex_cache=%7B%7D; pbjs_li_nonid=%7B%7D; __vt=bI5Nl4_3wIiyQqd-ABQCIf6-ytF7QiW7ovfhqc-AvRvwyUuxl21BvNUgBcewLtYtxhD9pK8plYHHUPpFuGJQzlL9HjsNiQXGwLu0f-XidRXohA9m08ary-La12XkjuKCU2QeR3ijnhWjQ8bnjvOcAaUKoA; bm_sv=867C80B13B2E8AE707E1A411B950E849~HDnKV8jbSFu9eHNiLb/p3fK3KqcxdMjPpLXFMD9YvvwLoQEuDGPgZZwEDhQeezJZJhdrUxX02mvzmDqkV7615Fm508wASvLcLsXmW/6+1K9pDp2UuCDIYbuZgv/2m76YS7Og/SBcU6xkIVnHhMVqpxWfro/1T3kO1LdXuFuprhA=; OptanonConsent=isGpcEnabled=0&datestamp=Fri+Mar+11+2022+14%3A53%3A51+GMT%2B0800+(%E4%B8%AD%E5%9B%BD%E6%A0%87%E5%87%86%E6%97%B6%E9%97%B4)&version=6.30.0&isIABGlobal=false&hosts=&consentId=cc7e2f72-5007-428f-a72e-392f9741b69d&interactionCount=1&landingPath=https%3A%2F%2Fwww.tripadvisor.com%2FRestaurants-g188590-Amsterdam_North_Holland_Province.html&groups=C0001%3A1%2CC0002%3A1%2CC0003%3A1%2CC0004%3A1',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36',
}
url = 'https://www.tripadvisor.com/Restaurants-g188590-Amsterdam_North_Holland_Province.html'
response = requests.get(url, headers=headers)
2. 获取数据(网页源代码)
html_data = response.text
3. 解析数据(提取我们想要的数据内容 详情页链接)
selector = parsel.Selector(html_data)
# 提取标签的属性内容 ::attr(href) 链接
link_list = selector.css('.bHGqj.Cj.b::attr(href)').getall()
for link in link_list:
link = 'https://www.tripadvisor.com/' + link
4. 发送请求(访问所有的详情页链接) 获取数据
detail_html = requests.get(link, headers=headers).text
5. 解析数据
detail_selector = parsel.Selector(detail_html)
store_name = detail_selector.css('.fHibz::text').get()
comment_count = detail_selector.css('.eSAOV.H3:nth-child(2) .eBTWs::text').get()
address = detail_selector.css('.eSAOV.H3:nth-child(3) .dyeJW.dUpPX:nth-child(1) .fhGHT::text').get()
city = detail_selector.css('.breadcrumbs li:nth-child(4) span::text').get()
phone = detail_selector.css('.eSAOV.H3:nth-child(3) .dyeJW.dUpPX:nth-child(2) .fhGHT a::text').get()
score = detail_selector.css('.eEwDq .fdsdx::text').get()
website = re.findall(',"website":"(http.*?)"', detail_html)[0]
print(store_name, comment_count, city, address, phone, score, link, website)
6.保存数据
with open('tripadvisor.csv', mode='a', newline='', encoding='utf-8') as f:
csv_writer = csv.writer(f)
csv_writer.writerow([store_name, comment_count, city, address, phone, score, link, website])
7.得到数据
来源:https://www.cnblogs.com/qshhl/p/16014074.html
标签:Python,爬虫,Tripadvisor,数据采集
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Python选择网卡发包及接收数据包
2021-10-13 12:02:10
python shell命令行中import多层目录下的模块操作
2023-08-24 11:28:40
![](https://img.aspxhome.com/file/2023/1/115691_0s.jpg)
基于PHP RSA密文过长加密解密 越过1024的解决方法
2023-09-07 02:57:56
python字符串常用方法
2023-05-29 13:54:15
python实现支持目录FTP上传下载文件的方法
2023-04-13 02:40:33
Django 导出 Excel 代码的实例详解
2021-04-01 05:56:41
![](https://img.aspxhome.com/file/2023/3/125153_0s.png)
Python数据结构与算法中的栈详解(3)
2022-01-19 14:38:24
![](https://img.aspxhome.com/file/2023/4/67384_0s.png)
在python 不同时区之间的差值与转换方法
2023-10-15 12:20:57
Python如何优雅删除字符列表空字符及None元素
2023-10-26 19:17:00
xhtml+css VS div+css
2008-04-07 13:00:00
Python 实现Mac 屏幕截图详解
2021-06-16 13:43:52
![](https://img.aspxhome.com/file/2023/8/107578_0s.jpg)
Numpy实现矩阵运算及线性代数应用
2022-10-18 17:55:50
![](https://img.aspxhome.com/file/2023/1/94601_0s.jpg)
python3实现从kafka获取数据,并解析为json格式,写入到mysql中
2023-06-12 21:30:21
详解Python实现图像分割增强的两种方法
2022-08-16 20:23:50
python清除字符串中间空格的实例讲解
2023-12-29 22:40:24
已安装tensorflow-gpu,但keras无法使用GPU加速的解决
2021-08-15 12:17:42
![](https://img.aspxhome.com/file/2023/6/81736_0s.jpg)
Python 页面解析Beautiful Soup库的使用方法
2022-02-26 07:57:15
Python中22个万用公式的小结
2022-12-15 21:06:38
![](https://img.aspxhome.com/file/2023/6/70906_0s.png)
Python3实现带附件的定时发送邮件功能
2023-07-08 23:33:57
numpy中np.c_和np.r_的用法解析
2021-02-09 17:54:06