Python识别网站所用技术构建网站使用的Python技术类型
优采云 发布时间: 2021-04-29 00:19Python识别网站所用技术构建网站使用的Python技术类型
1. 4. 4标识使用的网站技术
用于构建网站的技术类型也会对我们的抓取方式产生影响。有一个非常有用的工具可以检查网站-detectem模块构建的技术类型,该模块需要Python 3. 5+环境和Docker。如果尚未安装Docker,则可以按照与您所使用的操作系统相对应的说明进行操作。安装Docker之后,您可以运行以下命令。
docker pull scrapinghub/splash pip install detectem
以上操作将从ScrapingHub中提取***的Docker映像,并通过pip安装该库。为了确保它不受任何更新或更改的影响,建议使用Python虚拟环境(``l''或Conda环境(),并检查项目的自述页面()。
列1. jpg {8%}为什么使用环境?
假设您的项目使用该库的早期版本进行开发(例如detectem),而在***版本中,detectem引入了一些向后不兼容的更改,从而导致您的项目无法正常工作。但是,在您正在开发的其他项目中,可能会使用较新的版本。如果您的项目使用系统中安装的detectem,则在更新库以支持其他项目时,该项目将无法运行。
Ian Bicking的virtualenv提供了一个巧妙的解决方案。此方法通过将系统中的Python可执行程序及其依赖项复制到本地目录来创建独立的Python环境。这样,项目就可以安装特定版本的Python库,而无需依赖外部系统。您还可以在不同的虚拟环境中使用不同的Python版本。 Anaconda的Python路径用于Conda环境中,它提供了类似的功能。
detectem模块基于许多扩展模块,并使用一系列请求和响应来检测网站使用的技术。它使用Splash,这是ScrapingHub开发的脚本浏览器。要运行该模块,只需使用det命令。
$ det http://example.python-scraping.com [('jquery', '1.11.0')]
我们可以看到示例网站使用了通用的JavaScript库,因此其内容很可能嵌入HTML中,而该HTML应该相对容易抓取。
d``etectem还很年轻,旨在成为Wappalyzer的Python基准版本。 Wappalyzer是基于Node.js的项目,支持解析不同的后端,广告网络,JavaScript库和服务器设置。您也可以在Docker中运行Wappalyzer。首先,您需要下载其Docker映像并运行以下命令。
$ docker pull wappalyzer/cli
然后,您可以从Docker实例运行脚本。
$ docker run wappalyzer/cli http://example.python-scraping.com
输出结果不容易阅读,但是当我们将其复制到JSON解析器时,我们可以看到检测到许多库和技术。
{'applications': [{'categories': ['Javascript Frameworks'], 'confidence': '100', 'icon': 'Modernizr.png', 'name': 'Modernizr', 'version': ''}, {'categories': ['Web Servers'], 'confidence': '100', 'icon': 'Nginx.svg', 'name': 'Nginx', 'version': ''}, {'categories': ['Web Frameworks'], 'confidence': '100', 'icon': 'Twitter Bootstrap.png', 'name': 'Twitter Bootstrap', 'version': ''}, {'categories': ['Web Frameworks'], 'confidence': '100', 'icon': 'Web2py.png', 'name': 'Web2py', 'version': ''}, {'categories': ['Javascript Frameworks'], 'confidence': '100', 'icon': 'jQuery.svg', 'name': 'jQuery', 'version': ''}, {'categories': ['Javascript Frameworks'], 'confidence': '100', 'icon': 'jQuery UI.svg', 'name': 'jQuery UI', 'version': '1.10.3'}, {'categories': ['Programming Languages'], 'confidence': '100', 'icon': 'Python.png', 'name': 'Python', 'version': ''}], 'originalUrl': 'http://example.python-scraping.com', 'url': 'http://example.python-scraping.com'}
从上面可以看出,测试结果认为Python和web2py框架具有很高的可信度。我们还可以看到网站使用前端CSS框架Twitter Bootstrap。 Wappalyzer还检测到网站使用Modernizer.js和Nginx作为后端服务器。由于网站仅使用JQuery和Modernizer,因此网站的所有页面都不太可能通过JavaScript加载。并且,如果您使用AngularJS或React构建此网站,则此时网站的内容可能会动态加载。另外,如果网站使用ASP.NET,则在爬网网页时必须使用会话管理和表单提交。对于这些更复杂的情况,我们将在第5章和第6章中介绍它们。
您喜欢的朋友可以添加我们的微信帐户:
51CTO读取频道QR码
51CTO阅读频道活动讨论组:365934973