ctrip-spider


Namectrip-spider JSON
Version 1.1.5 PyPI version JSON
download
home_pagehttps://github.com/yanjlee/ctrip_spider
Summary携程爬虫(破解eleven, 发现ctrip_ticket).
upload_time2024-06-01 07:31:26
maintainerNone
docs_urlNone
authoryanjlee
requires_pythonNone
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 携程爬虫(破解eleven, 发现ctrip_ticket)
**使用时先跑'gen_ticket.py'生成ctrip_ticket,再跑'main.py'** <br />
破解eleven参数后,可以不需要调用selenium便可请求到详细的价格信息,提升获取速度、减少资源占用 <br />
该爬虫可爬取:
* 每个酒店名称、评分
* 每个酒店不同预订时间每种房型价格
* 每个酒店不同预订时间每种房型满意度
* 每个酒店不同预订时间每种房型剩余可订数 <br />
## 1. 获得房间价格的重要参数"eleven"的生成方法
* "eleven"由一个混淆js文件-"oceanball"生成,该文件具有随机性
* 生成方法:ctrip_funcs.py中的"get_oceanball"、"get_eleven"两个函数,需要配合js代码和python共同生成
## 2. 发现获得剩余可订房间仅需要Cookie: ctrip_ticket
* 这个cookie疑似使用“Http-only”Flag 发送,无法直接读取,只能通过浏览器获得。([reference](https://stackoverflow.com/questions/1022112/why-doesnt-document-cookie-show-all-the-cookie-for-the-site))
* 该cookie时效较长,可以用selenium每30分钟提取一次

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/yanjlee/ctrip_spider",
    "name": "ctrip-spider",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": null,
    "author": "yanjlee",
    "author_email": "yanjlee@163.com",
    "download_url": "https://files.pythonhosted.org/packages/26/fa/43b56f341c8d0ca75580c7a8279aa9a0318f2c3fef7346e346430464bc64/ctrip_spider-1.1.5.tar.gz",
    "platform": null,
    "description": "# \u643a\u7a0b\u722c\u866b(\u7834\u89e3eleven, \u53d1\u73b0ctrip_ticket)\r\n**\u4f7f\u7528\u65f6\u5148\u8dd1'gen_ticket.py'\u751f\u6210ctrip_ticket\uff0c\u518d\u8dd1'main.py'** <br />\r\n\u7834\u89e3eleven\u53c2\u6570\u540e\uff0c\u53ef\u4ee5\u4e0d\u9700\u8981\u8c03\u7528selenium\u4fbf\u53ef\u8bf7\u6c42\u5230\u8be6\u7ec6\u7684\u4ef7\u683c\u4fe1\u606f\uff0c\u63d0\u5347\u83b7\u53d6\u901f\u5ea6\u3001\u51cf\u5c11\u8d44\u6e90\u5360\u7528 <br />\r\n\u8be5\u722c\u866b\u53ef\u722c\u53d6\uff1a\r\n* \u6bcf\u4e2a\u9152\u5e97\u540d\u79f0\u3001\u8bc4\u5206\r\n* \u6bcf\u4e2a\u9152\u5e97\u4e0d\u540c\u9884\u8ba2\u65f6\u95f4\u6bcf\u79cd\u623f\u578b\u4ef7\u683c\r\n* \u6bcf\u4e2a\u9152\u5e97\u4e0d\u540c\u9884\u8ba2\u65f6\u95f4\u6bcf\u79cd\u623f\u578b\u6ee1\u610f\u5ea6\r\n* \u6bcf\u4e2a\u9152\u5e97\u4e0d\u540c\u9884\u8ba2\u65f6\u95f4\u6bcf\u79cd\u623f\u578b\u5269\u4f59\u53ef\u8ba2\u6570 <br />\r\n## 1. \u83b7\u5f97\u623f\u95f4\u4ef7\u683c\u7684\u91cd\u8981\u53c2\u6570\"eleven\"\u7684\u751f\u6210\u65b9\u6cd5\r\n* \"eleven\"\u7531\u4e00\u4e2a\u6df7\u6dc6js\u6587\u4ef6-\"oceanball\"\u751f\u6210\uff0c\u8be5\u6587\u4ef6\u5177\u6709\u968f\u673a\u6027\r\n* \u751f\u6210\u65b9\u6cd5:ctrip_funcs.py\u4e2d\u7684\"get_oceanball\"\u3001\"get_eleven\"\u4e24\u4e2a\u51fd\u6570\uff0c\u9700\u8981\u914d\u5408js\u4ee3\u7801\u548cpython\u5171\u540c\u751f\u6210\r\n## 2. \u53d1\u73b0\u83b7\u5f97\u5269\u4f59\u53ef\u8ba2\u623f\u95f4\u4ec5\u9700\u8981Cookie: ctrip_ticket\r\n* \u8fd9\u4e2acookie\u7591\u4f3c\u4f7f\u7528\u201cHttp-only\u201dFlag \u53d1\u9001\uff0c\u65e0\u6cd5\u76f4\u63a5\u8bfb\u53d6\uff0c\u53ea\u80fd\u901a\u8fc7\u6d4f\u89c8\u5668\u83b7\u5f97\u3002([reference](https://stackoverflow.com/questions/1022112/why-doesnt-document-cookie-show-all-the-cookie-for-the-site))\r\n* \u8be5cookie\u65f6\u6548\u8f83\u957f\uff0c\u53ef\u4ee5\u7528selenium\u6bcf30\u5206\u949f\u63d0\u53d6\u4e00\u6b21\r\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "\u643a\u7a0b\u722c\u866b(\u7834\u89e3eleven, \u53d1\u73b0ctrip_ticket).",
    "version": "1.1.5",
    "project_urls": {
        "Homepage": "https://github.com/yanjlee/ctrip_spider"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "fc2aa03fad89181b1f6749609b54197b09a124b215e642f0e363cbdc2a97d3d6",
                "md5": "d0acad434afc4eda0cb6fd43b1bc27c6",
                "sha256": "4d9aa4b3398a5cb5f3a8cecdc76282c2e9fdaf05e5b341d420d732d546768314"
            },
            "downloads": -1,
            "filename": "ctrip_spider-1.1.5-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "d0acad434afc4eda0cb6fd43b1bc27c6",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 2996,
            "upload_time": "2024-06-01T07:31:24",
            "upload_time_iso_8601": "2024-06-01T07:31:24.811038Z",
            "url": "https://files.pythonhosted.org/packages/fc/2a/a03fad89181b1f6749609b54197b09a124b215e642f0e363cbdc2a97d3d6/ctrip_spider-1.1.5-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "26fa43b56f341c8d0ca75580c7a8279aa9a0318f2c3fef7346e346430464bc64",
                "md5": "4ddff251b0aa23ff1f0874af4064d896",
                "sha256": "f46269ba3a35be365adf792587de927e853ebf3d02ac15559e08e13c16fe0212"
            },
            "downloads": -1,
            "filename": "ctrip_spider-1.1.5.tar.gz",
            "has_sig": false,
            "md5_digest": "4ddff251b0aa23ff1f0874af4064d896",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 3582,
            "upload_time": "2024-06-01T07:31:26",
            "upload_time_iso_8601": "2024-06-01T07:31:26.947550Z",
            "url": "https://files.pythonhosted.org/packages/26/fa/43b56f341c8d0ca75580c7a8279aa9a0318f2c3fef7346e346430464bc64/ctrip_spider-1.1.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-06-01 07:31:26",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "yanjlee",
    "github_project": "ctrip_spider",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "ctrip-spider"
}
        
Elapsed time: 4.70170s