若有收获,就点个赞吧
python探究三亚是否真的有酒店涨价4倍
海南疫情还在迅速发展,在三亚宣布全市社区封闭式管理后,海口市也于7日晚宣布全市实行临时性全域静态管理。7日,话题#一家13人滞留三亚酒店住一晚万元#登上热搜,引发热议。在三亚住宿真的这么贵?之后,三亚文华东方酒店同意按照政府规定,以此前预订价格的半价收费续住,那很多的网友都是通过app订购的酒店,app上的价格和柜台价格有差别,不知道按照半价是否都是统一按照半价呢?
还有网友发现很多酒店有先提价后打折的趋势,这个属实让人觉得过分了,尤其是在疫情前。那么我们今天就利用python去一探究竟,本文主要通过获取携程网上三亚有关酒店价格信息进行分析看下是否真的有提价后打折的事。
在爬取之前我发现很多新手一般都有一个共有的误区,就是他们觉得爬虫都是 “通用” 的,一个网站的爬虫拿过来,网址改一下,再随便撺吧撺吧就可以爬另一个网站了。
实际上,每一个网站的爬取都是需要单独进行分析的,你需要找到目标数据是在网页上的什么位置,是通过静态还是动态的方式加载进去的,网站是否有难搞的反爬虫措施,等等,从而来制定自己爬虫的爬取策略。比如携程网封IP就比较严,这样的前提下我们就需要有足够的IP去访问,代理IP的来源也很简单,网上有很多代理商,选择一家靠谱的就可以。比如这次使用到的亿牛云代理的隧道IP,代理在爬虫程序里面的实现过程如下:
#! -*- encoding:utf-8 -*-
import requests
import random
# 要访问的目标页面
targetUrl = "http://httpbin.org/ip"
# 要访问的目标HTTPS页面
# targetUrl = "https://httpbin.org/ip"
# 代理服务器(产品官网 www.16yun.cn)
proxyHost = "t.16yun.cn"
proxyPort = "31111"
# 代理验证信息
proxyUser = "username"
proxyPass = "password"
proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % {
"host" : proxyHost,
"port" : proxyPort,
"user" : proxyUser,
"pass" : proxyPass,
}
# 设置 http和https访问都是用HTTP代理
proxies = {
"http" : proxyMeta,
"https" : proxyMeta,
}
# 设置IP切换头
tunnel = random.randint(1,10000)
headers = {"Proxy-Tunnel": str(tunnel)}
resp = requests.get(targetUrl, proxies=proxies, headers=headers)
print resp.status_code
print resp.text
若有收获,就点个赞吧
python探究三亚是否真的有酒店涨价4倍
xiaotaomi
会员积分:6520
海南疫情还在迅速发展,在三亚宣布全市社区封闭式管理后,海口市也于7日晚宣布全市实行临时性全域静态管理。7日,话题#一家13人滞留三亚酒店住一晚万元#登上热搜,引发热议。在三亚住宿真的这么贵?之后,三亚文华东方酒店同意按照政府规定,以此前预订价格的半价收费续住,那很多的网友都是通过app订购的酒店,app上的价格和柜台价格有差别,不知道按照半价是否都是统一按照半价呢?
还有网友发现很多酒店有先提价后打折的趋势,这个属实让人觉得过分了,尤其是在疫情前。那么我们今天就利用python去一探究竟,本文主要通过获取携程网上三亚有关酒店价格信息进行分析看下是否真的有提价后打折的事。
在爬取之前我发现很多新手一般都有一个共有的误区,就是他们觉得爬虫都是 “通用” 的,一个网站的爬虫拿过来,网址改一下,再随便撺吧撺吧就可以爬另一个网站了。
实际上,每一个网站的爬取都是需要单独进行分析的,你需要找到目标数据是在网页上的什么位置,是通过静态还是动态的方式加载进去的,网站是否有难搞的反爬虫措施,等等,从而来制定自己爬虫的爬取策略。比如携程网封IP就比较严,这样的前提下我们就需要有足够的IP去访问,代理IP的来源也很简单,网上有很多代理商,选择一家靠谱的就可以。比如这次使用到的亿牛云代理的隧道IP,代理在爬虫程序里面的实现过程如下:
#! -*- encoding:utf-8 -*-
import requests
import random
# 要访问的目标页面
targetUrl = "http://httpbin.org/ip"
# 要访问的目标HTTPS页面
# targetUrl = "https://httpbin.org/ip"
# 代理服务器(产品官网 www.16yun.cn)
proxyHost = "t.16yun.cn"
proxyPort = "31111"
# 代理验证信息
proxyUser = "username"
proxyPass = "password"
proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % {
"host" : proxyHost,
"port" : proxyPort,
"user" : proxyUser,
"pass" : proxyPass,
}
# 设置 http和https访问都是用HTTP代理
proxies = {
"http" : proxyMeta,
"https" : proxyMeta,
}
# 设置IP切换头
tunnel = random.randint(1,10000)
headers = {"Proxy-Tunnel": str(tunnel)}
resp = requests.get(targetUrl, proxies=proxies, headers=headers)
print resp.status_code
print resp.text
若有收获,就点个赞吧
22-08-08 16:40
1075
0
回复
暂无评论