利用selenium爬取携程旅游网的景区评论

第一步:打开携程网,获取该景点的网址。以我的为例,我爬取的是湖北省 恩施州的恩施大峡谷景区的评论。网址为:https://you.ctrip.com/sight/enshi487/51386.html#ctm_ref=www_hp_his_lst
大家可以根据自己的需求更改自己搜索的携程网址。

第二步:编写代码。

import requests
from selenium import webdriver
import time
import pandas as pd

#利用谷歌内核chromedriver爬取数据,如果没有设置环境变量,需要手动添加chromedriver的路径。
driver = webdriver.Chrome(executable_path='C:/Users/***/Desktop/chromedriver.exe')
#利用get方法请求访问网址。
driver.get('https://you.ctrip.com/sight/enshi487/51386.html#ctm_ref=www_hp_his_lst')
comment_list = [] #定义一个空列表存放爬取的评论
for i in range(0,300):#爬取300页的评论。
    driver.execute_script("window.scrollTo(0,document.body.scrollHeight);")#下滑到页面底端
    comments = driver.find_elements_by_css_selector('div.commentDetail')#定位到commentDetail节点,爬取当前页的全部评论。
    for comment in comments:
        comment_list.append(comment.text)
    driver.execute_script("arguments[0].click();", driver.find_element_by_class_name('ant-pagination-next'))#实现翻页功能,定位到ant-pagination-next节点,单击实现翻页。
    print('正在爬取',i,'页')
    time.sleep(2)  #休眠2秒.
    
    
comment_dataframe = pd.DataFrame(comment_list) #利用pandas将列表转换成dataframe类型

#保存爬取的评论为csv格式。路径根据自己的情况定。解码格式为:utf_8_sig,否则打开的csv是乱码。
comment_dataframe.to_csv('C:/Users/***/Desktop/恩施大峡谷.csv',encoding = 'utf_8_sig')

注意:携程网是动态网页,单击下一页评论的时候你会发现网址并没有变化,因此使用selenium自动操作谷歌chromedriver内核进行翻页爬取。chromedriver需要自行下载。

  • 2
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值