湖南建设厅网站不良记录,传奇简单网站模板,深圳网站制作必推祥奔科技,广州少儿编程培训机构尽管现代的网站多采取前后端分离的方式进行开发了#xff0c;但是对直接 API 的调用我们通常会有 token 的限制和可以调用频率的限制。 因此#xff0c;在一些特定的网站上#xff0c;我们可能还是需要使用网络爬虫的方式获得已经返回的 JSON 数据结构#xff0c;甚至是处理…尽管现代的网站多采取前后端分离的方式进行开发了但是对直接 API 的调用我们通常会有 token 的限制和可以调用频率的限制。 因此在一些特定的网站上我们可能还是需要使用网络爬虫的方式获得已经返回的 JSON 数据结构甚至是处理已经完成界面展示的数据了。
Selenium
与BeautifulSoup和Scrapy相比Selenium是一个不同的工具。
Selenium 并不是为网络爬取而生的。它实际上是为网络测试而开发的。Selenium被用于网络应用程序的自动化测试。
它使网络浏览器自动化你可以用它来代表你在浏览器环境中进行操作。然而它后来也被纳入了网络爬取的范畴。Selenium可以发送网络请求还带有一个分析器。通过Selenium你可以从HTML文档中提取数据就像你使用Javascript DOM API那样。
Selenium的主要优势在于它能加载Javascript并能帮助你访问JavaScript背后的数据而不一定要自己经历发送额外请求的痛苦。这使得Selenium不仅对自己有用而且对其他工具也有用。
使用Scrapy或BeautifulSoup 的网络爬虫如果需要只有在加载Javascript文件时才能获得的数据就会使用Selenium。
Selenium 会启动一个浏览器同时在这个浏览器中进行操作的模拟。
同时 Selenium 还具有 HTML 的 DOM 分析能力通过选择器你可以选择需要的数据。
Scrapy
Scrapy是一个网络抓取框架它配备了大量的工具使网络抓取和爬取变得简单。它在设计上是多线程的并建立在Twisted之上。Twisted是一个异步网络框架遵循对服务器的非阻塞I/O调用。因为它是多线程和非阻塞的所以它在性能方面实际上是最好的实际上是3个工具中最快的。Scrapy比这三个工具的一个优势是它带有发送请求和解析响应的模块。
Scrapy 是开发复杂的网络抓取和爬虫工具因为你可以创建大量的工作者而且每个工作者都能毫不费力地工作。它的建立是为了消耗更少的内存并将CPU资源的使用降到最低。事实上一些基准测试表明Scrapy在抓取方面比其他工具快20倍。它是可移植的而且其功能可以扩展。
与Scrapy相关的主要问题是它不是一个以初学者为中心的工具。
Scrapy 的文档比较难读学习曲线也比较陡峭我不认为这个工具比较适合初学者来使用。
Scrapy的一个主要缺点是它不能渲染 JavaScript你必须发送 Ajax 请求来获取隐藏在JavaScript事件后面的数据。
这种情况对当前前后端分离的技术来说还是有点麻烦的我们必须要比较清楚的分析 AJAX 的数据请求。
BeautifulSoup
对应 Java 世界来说Java 会有一个 JSoup。
一个针对 HTML 的 Dom 文件分析器和选择器BeautifulSoup 在Python 中做了同样的工作。
通过让你对 HTML 界面中的内容进行分析和处理以便于能够从中获取数据。
比如说如果界面中有表格在表格中有数据我们需要获取的就是表格中的数据的话就可以使用 DOM 分析工具来进行分析。
总结
因最近我们在对爬虫的使用进行研究对上面 3 个框架都有了一些探讨。
个人觉得比较简单的还是 Selenium同时 Selenium 也足够强大能够满足我们对一些小网站的爬虫分析。 Python 网络爬取的时候使用那种框架 - Python - iSharkFly