最近真是和大众点评过不去了,大众点评的反爬虫措施也是很牛逼了
之前试过使用selenium直接访问页面是不可以的,检测出自动化之后强行跳转到验证页面,手动滑动还通不过,shit
于是就想到使用登录之后的cookie来访问,看到一些文章说从返回浏览器的cookie进行访问,结果发现大众点评的详情页是没有的,fuck
好的, 我们直接用程序获取返回的cookie
这个方法需要手动登录,一次性获取到cookie,之后就可以一直使用该cookie直到cookie过期
def getCookies():
url = "http://www.dianping.com/"
brower.get("https://account.dianping.com/login?redir=http%3A%2F%2Fwww.dianping.com%2F")
while True:
print("Please login in dianping.com!")
time.sleep(3)
while brower.current_url == url:
tbCookies = brower.get_cookies()
print(tbCookies)
brower.quit()
这就获取到登录之后的cookie列表了
现在我们用这个来访问页面
brower.get('https://account.dianping.com/login?redir=http%3A%2F%2Fwww.dianping.com%2F')
for c in c_list:
brower.add_cookie({
"domain": ".dianping.com",
"name": c['name'],
"value": c['value'],
"path": '/',
"expires": None
})
brower.get('http://www.dianping.com/shop/128895900')
c_list就是之前获取到的cookie列表了
值得注意的是在添加cookie之前需要先访问他的登录页面,不然不知道是添加那个网站的cookie
这样我们就直接访问到了直接使用selenium访问访问不到的页面了