100行代码爬取世界全部必胜客餐厅信息
副问题[/!--empirenews.page--]
当我刚打仗 Python 时,我已经被 Python 深深所吸引。Python 吸引我的处所不只仅能用其编写收集爬虫,并且能用于数据说明。我能将大量的数据中以图形化方法泛起出来,越发直观的解读数据。 数据说明的条件是稀有据可说明。假如没稀有据怎么办?一是可以去一些数据网站下载相干的数据,不外数据内容也许不是本身想要的。二是本身爬取一些网站数据。 本日,我就爬取世界各地全部的必胜客餐厅信息,以便后续做数据说明。 01抓取方针 我们要爬取的方针是必胜客中国。打开必胜客中国首页,进入“餐厅查询”页面。 我们要爬取的数据内容有都市、餐厅名字、餐厅地点以及餐厅接洽电话。由于我看到页面中有舆图,以是页面必然有餐厅地点的经纬度。因此,餐厅的经纬度也是我们必要爬取的数据。 至于世界有必胜客餐厅的都市列表,我们可以通过页面的“切换都市”获取。 02说明目页面 在编写爬虫措施之前,我都是先对页面举办简朴说明,然后指定爬取思绪。并且对页面布局举办说明每每会有一些意想不到的收成。 我们行使赏识器的开拓者器材对页面布局举办简朴说明。 我们在 StoreList 页面中能找到我们所需的数据。这个能确定命据提取的 Xpath 语法。 StoreList 页面的 Response 内容较量长。我们先不着急封锁页面,往下看看,找找看是否有其他可操作的内容。最后,我们找到挪用获取餐厅列表信息的 JavaScript 函数代码。 我们接着搜刮下GetStoreList函数,看看赏识器怎样获取餐厅列表信息的。 从代码中,我们可以相识到页面行使 Ajax 方法来获取数据。页面以 POST 方法哀求地点http://www.pizzahut.com.cn/StoreList/Index。同时,哀求还携带参数 pageIndex 和 pageSize。 03爬取思绪 颠末一番页面布局说明之后,我们指定爬取思绪。起首,我们先获取都市信息。然后将其作为参数,构建 HTTP 哀求会见必胜客处事器来获取当前都市中全部餐厅数据。 为了利便数据爬取,我将全部都市所有写入到 cities.txt 中。等要爬取数据时,我们再从文件中读取都市信息。 爬取思绪看起来没有错,可是照旧有个困难没有搞定。我们每次打开必胜客的官网,页面每次城市自动定位到我们地址的都市。假如无法破解都市定位题目,我们只能抓取一个都市数据。 于是乎,我们再次赏识首页,看看能不能找到一些可用的信息。最终,我们发明页面的 cookies 中有个 iplocation 字段。我将其举办 Url 解码,获得 深圳|0|0 这样的信息。 看到这信息,我名顿开。原本必胜客网站按照我们的 IP 地点来配置初始都市信息。假如我们能伪造出 iplocation 字段信息,那就可以任意修改都市了。 04代码实现 第一步是从文件中读取都市信息。
第二步是依次遍历 cities 列表,将每个都市作为参数,结构 Cookies 的 iplocation 字段。
(编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |