携程分析数据首先我们去携程的鼓浪屿景点(组图)

优采云 发布时间: 2021-05-24 20:07

  携程分析数据首先我们去携程的鼓浪屿景点(组图)

  前言

  为了获得多源数据,有必要进入每个网站以获取评论信息和某些景点的图片。首先,我选择了Ctrip和Mafengwo 网站,并记录了一些抓取过程

  PS :(我出售大量的微博数据,很长一段时间旅行网站评论数据,并提供各种指定的数据爬网服务,留言给。也欢迎加入社交媒体数据交换小组:9991876 8)

  携程分析数据

  首先,我们去携程旅行网的鼓浪屿风景区快速浏览我们要爬网的页面。我们大概发现了数十个景点。每个景点的结构应该相似,因此我们选择第一个景点并进行观察。如何抓取特定页面。

  

  我们需要的是红色圆圈中的部分。很容易知道注释页面是动态加载的,因此您不能直接使用bs4或Regular提取元素。我们需要分析页面的动态传输界面。打开chrome审查元素,切换到网络以检查传输的内容,首先清除内容以避免干扰,然后单击下一页,我们可以得到

  

  通过检查返回的数据,我们可以获得这是我们想要的接口。该帖子用于传输。传输的表单数据具有许多字段,可以粗略地猜测。

  poiID是景点的poiID。 pagenow是当前页码。星号为1-5,0表示所有resourceId是与每个资源相对应的值

  抓取时,您只需要更改这些值即可根据自己的需要抓取内容,但是需要注意的是携程的pagenow最多只能获取100页,并且poiID和resourceId值是不规律的。让我们一个接一个地检查风景名胜...我依次找到了鼓浪屿所有风景名胜的价值,并将它们存储在文本中。本文结尾处有一个github分享。

  建立图书馆

  我们要做的第一件事是弄清楚数据库的结构。我选择使用mysql。具体结构如下:

  

  获取数据

  我不会详细分析它,这并不困难,但是有一些陷阱需要注意。

  首先,并非所有评论都具有风景和性价比方面的评分,所以我需要在这里添加一个判断。第二,原来有旅行时间,但现在看来已经没有时间了。第三,单引号可能会出现在注释文本中,并且在插入数据库时​​会发生错误。您需要转义或更换它。第四,不要抓得太快,携程仍然很强大。蚂蚁蜂窝分析数据

  类似地,Ma蜂窝的数据也被动态加载。使用相同的方法查看和分析数据接口。

  

  您可以看到Mafengwo的数据获取方法已获得,我们可以找到所请求URL的规律。比较不同景点和不同页面的数据后,我们发现参数变化主要在两个地方,一个是poiid,我改用href,而另一个是页码,改用num。要获取景点的评论数据,只需更改这两个值即可。

  url ='{href}%22%2C%22page%22%3A {num}%2C%22just_comment%22%3A1%7D'获取每个景点的兴趣点

  这不是发帖请求。我们不需要一个个地获取参数。我们可以访问该站点以查找所有用户,但该站点的数据也将动态加载

  

  

  

  根据上面的图片,我们可以清楚地看到我们只需传递页码即可获取所有景点的景点,然后我们就可以基于这些景点获取所有评论数据,这部分我们使用要处理的功能

  def get_param():

# 获取所有景点的参数

total = []

router_url = 'http://www.mafengwo.cn/ajax/router.php'

for num in range(1, 6):

params = {

'sAct': 'KMdd_StructWebAjax|GetPoisByTag',

'iMddid': 12522,

'iTagId': 0,

'iPage': num

}

pos = requests.post(url=router_url, data=params, headers=headers).json()

soup_pos = BeautifulSoup(pos['data']['list'], 'lxml')

result = [{'scenery': p['title'], 'href': re.findall(re.compile(r'/poi/(\d+).html'), p['href'])[0]} for p in

soup_pos.find_all('a')]

total.extend(result)

return total

  其余类似,所以我不会做太多解释。

  在下面附加我的代码

  传播一波广告

  我很久以来一直在出售捕获大量微博数据的代码,并提供打包出售的微博数据,消息给

  个人博客

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线