大众点评评论爬取

很久之前做的一个小项目了,爬取大众点评的评论,我这里就用熊猫基地的案例来展示整个爬取过程了,首先,其实评论分了两种,一开始进入的评论界面是涉及js逆向的,然后下方的更多评论中的评论爬取就较为简单,不涉及逆向

  1. 大众点评js逆向
    我们打开开发者工具随便搜索一个在页面中看到的用户id,查看评论和图片是否是写死在源代码中的
    在这里插入图片描述

这里我们可以看到,其实我们所要爬取的数据ajax请求
再去看看查询字符串参数,发现_token是变化的,仔细对比观察能发现cookie不变,这就意味着_token涉及加密,我们在下方的搜索中查询_token,一般习惯性都是加密谁就搜索谁
在这里插入图片描述
在可疑的地方打断点测试看返回值,很明显我们找对地方了,此处有我们想要的_token,我们可以看到_token = n,而n = h(i, e.sendData),所以我们需要进入到h中查看
在这里插入图片描述
n = i.reload(s),我们在进入i.reload(s)中查看,毕竟n = _token,i = window.Rohr_Opt所以我们进入到i中查看
在这里插入图片描述
这里就是我们所需要的加密js代码了,我们把他全部扣下来,再补充好环境,这里我就不多讲了,自己运行代码会有提示,最后需要把js代码封装成函数,一切都做好之后就可以开始爬虫了
这里我们用到的是execjs这个库

node = execjs.get()
sign = node.compile(open('E:\pythonfile\js文件\大众点评js.js',encoding='utf-8').read())
fun = 'token()'#这里是js文件中我们写的函数的名字
token = sign.eval(fun)

把token加入到请求头参数里面,后面就是正常的爬虫流程,我就不过多的介绍了

  1. 大众点评数据爬取

前面我有介绍到点击更多评论之后的评论数据是不加密的,这里我就简单的分析一下网站就好了,通过分析网站我们能发现,更多评论中的评论数据都是写在源代码中的,并且图片是懒加载,且没有涉及加密,这就意味着我们要获取到图片地址是data-lazyload,而不是src。
另外,我们多看几页能发现,第一页是默认页,和后面的url都不一样,思路理清楚以后我们就可以开始爬虫了

def get_url(url):
    url_lis = []
    for i in range(1, 5):
        if i == 1:
            url_lis.append(url)
        else:
            urlr = url + f'/p{i}'
            url_lis.append(urlr)
    return url_lis

这里我们先实现首页和后面几页的Url不一样的问题,解决了以后就可以开始爬虫了

def resq(url,headers):
    url = get_url(url)
    for u in url:
        try:
            res = requests.get(u,headers=headers)
            if res.status_code == 200:
                try:
                    html = etree.HTML(res.text)
                    item = html.xpath('//*[@class="reviews-items"]/ul/li')
                    src_lis = []
                    for i in item:
                        pl = ''.join(i.xpath('./div/div[3]/text()')).encode('utf-8')
                        src = i.xpath('./div/div[5]/ul/li[@class="item"]/a/img/@data-lazyload')
                        src_lis.append(src)
                    # print(src)
                    # print(src_lis)
                    return src_lis
                except urllib.error.HTTPError as e:
                    print(e)
        except Exception as e:
            print(e)

这一部分就是爬虫的代码,后续可以把获取到的图片地址进行二次请求保存到本地,就好了
在这里插入图片描述

***欢迎的美食点评网站,同时也提供了旅游评论的功能。如果你想爬取大众点评的旅游评论数据,你可以遵循以下步骤: 1. 确定你要爬取的旅游评论的URL,可以根据地区和分类来筛选你感兴趣的评论。 2. 由于大众点评有较严格的防爬虫机制,你需要在请求时携带正确的cookie信息,并且控制你的爬取速度,避免过快的访问频率,以免被封禁IP。这样可以确保你的爬虫能够稳定地获取数据。 3. 大众点评的数据大部分都是经过加密的,你可能需要解密这些数据才能获取到可见的评论内容。 4. 在爬取评论数据时,你可以将数据存储到数据库中,以便后续进行分析和处理。 需要注意的是,在进行数据爬取时,请确保你遵守相关的法律法规,并且尊重网站的使用规定。另外,建议在爬取前先与网站进行授权和沟通,以免违反相关政策引发纠纷。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [python爬取大众点评某城市美食类数据](https://blog.csdn.net/weixin_41259961/article/details/117524921)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [dazhong:大众点评评论爬取](https://download.csdn.net/download/weixin_42110362/19277387)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值