Python识别网站所用技术构建网站使用的Python技术类型

优采云 发布时间: 2021-04-29 00:19

  Python识别网站所用技术构建网站使用的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

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线