获取猫眼电影所有城市信息2

获取猫眼电影所有城市信息2

感谢 https://blog.****.net/weixin_39416561 这位老哥的点拨,让我学会新方法来获取隐藏在js里的信息,学习学习。
https://blog.****.net/qq_42776455/article/details/86489275 这篇是我自己用selenium暴力入手的,虽然简单。其实是一个比较笨的方法,可以参考下这个:https://ask.****.net/questions/725362

分析最重要

当触发的时候看源代码的变化,已经抓包分析,排除Ajax,那很可能是在js里的。
获取猫眼电影所有城市信息2

触发下拉列表,使源代码加载完全。如下图:下拉列表的信息在源代码里找到。
获取猫眼电影所有城市信息2

提取下拉列表的关键词,类名:js-city-name,在控制台搜索。
获取猫眼电影所有城市信息2

定位到 https://s0.meituan.net/bs/?f=myfe/mywww:/common.98f4f69f.js 是由这个js代码传来的。保存本地或者在控制台分析这个js。
获取猫眼电影所有城市信息2

找到关键代码:localStorage.getItem(“cities”)

在控制台测试:
获取猫眼电影所有城市信息2

或者用selenium执行这个函数:

from selenium import webdriver
from lxml import etree
driver = webdriver.PhantomJS()

driver.get('https://maoyan.com/')
driver.execute_script('localStorage.getItem("cities")')
html = driver.page_source
xpath_parser = etree.HTML(html)
city_list = xpath_parser.xpath('//div[@class="city-list"]//a[@class="js-city-name"]/text()')
print(city_list)