我是使用 selenium 去捕获动态数据的。但最近发现一个网站,我先使用 swich_to.frame 来切换框架后可以获取到第一页的数据。然后可以进行 click () 方法进行一页一页获取。网上查过资料大多都是 webdriver+selenium 的做法。
问题是这样的:
1. 内容总共有 70 + 页,一页一页翻太慢了。
2. 页数多可以多线程解决,但是 selenium 始终会打开浏览器,这样太占用资源,有其他模块可以不打开浏览器进行遍历爬取吗
3.iframe 下有一个连接应该是用来保存这些数据的,但是我直接访问这个链接就返回信息 “非法链接,请从.... 网站登入”。
现时使用的都是视频教程的 urllib,selenium,BeautifulSoup,但是视频都教得太浅了,都是自己网上找资料的。
这里想问问大神们,有没有其他可以不用打开浏览器爬取动态数据的模块?或者有什么方法可以解决我上述几个问题呢?
Scrapy 你做爬虫竟然不用?
它很强大但在抓取动态网页上很繁琐,
ferret 爬取动态页面比较方便,简单易上手
scrapy 和 requests 可以用一下
五个常用的爬虫包
Requests:对于添加到数据科学工具箱中至关重要。这是一个简单但功能强大的 HTTP 包,这意味着您可以使用它来访问网页。我们将其称为 “农场”,因为您将使用它来获取菜肴的原料(即原始 HTML)(即可用数据)。
Beautiful Soup 4:
Beautiful Soup(BS4)是一个解析包,可以使用不同的解析器。解析器只是一个可以从 HTML 和 XML 文件提取数据的程序。Beautiful Soup 的默认解析器来自 Python 的标准库。它既灵活又宽容,但是有点慢。好消息是,如果需要速度,可以将其解析器换成更快的解析器。BS4 的一个优点是它能够自动检测编码。这使它可以优雅地处理带有特殊字符的 HTML文档。
lxml:Lxml 是高性能,生产质量的 HTML 和 XML 解析包。我们称其为 “色拉”,因为无论您选择哪种饮食,您都可以依靠它对自己有益。在所有 Python 网络抓取包中,我们最喜欢使用 lxml。它简单,快速且功能丰富。即使这样,如果您有使用 XPath 或 CSS 的经验,也很容易上手。它的原始速度和力量也帮助其在行业中被广泛采用。
Selenium:Selenium 是使浏览器自动化的工具,也称为 Web 驱动程序。有了它,您实际上可以打开 Google Chrome 窗口,访问网站,然后单击链接。很酷吧?它还带有 Python 绑定,可直接在您的应用程序中对其进行控制。与您选择的解析库集成变得轻而易举。
Scrapy:从技术上讲,Scrapy 甚至不是一个包…… 这是一个完整的 Web 抓取框架。这意味着您可以使用它来管理请求,保留用户会话,遵循复位向并处理输出管道。这也意味着您可以与其他 Python Web 抓取包交换单个模块。例如,如果您需要插入 Selenium 来抓取动态网页。因此,如果您需要重新使用搜寻器,对其进行缩放,管理复杂的数据管道或制作其他一些复杂的蜘蛛,那么 Scrapy 就是为您量身定制的。
好的,谢谢几位大佬,我先看看Scrapy