我有一个要抓取的URL,我问我最好的方法是什么。
以硒为例:
executable_path = "....\chromedriver" browser = webdriver.Chrome(executable_path=executable_path)
url = "xxxxxxxxxx" browser.get(url) timeout = 20
# find_elements_by_xpath returns an array of selenium objects.
titles_element = browser.find_elements_by_css_selector('[data-test-id="xxxx"]'
此方法启动Chrome浏览器。在Windows上,我必须安装相同版本的"Chrome浏览器"和Chrome驱动程序。但是在 Linux 服务器中会发生什么:安装 Chrome 驱动程序没有问题,但在没有图形界面的服务器上安装 Chrome 浏览器不是问题?
您是否建议我使用请求模块而不是硒,因为我的 URL 已经构建好了。 被网站抓住的风险是硒还是要求更重要?
如果你只有一个URL可以抓取Selenium更好,因为它比请求更容易编码。
例如:如果您需要向下滚动以显示数据,则没有浏览器将很难做到
如果你想做密集的抓取,也许你应该尝试使用漂亮的汤的请求,它会在你的服务器上使用更少的资源。
您还可以使用 scrapy,使用它很容易欺骗用户代理,这使您的机器人更难检测。
如果您在 2 个请求之间以负责任的延迟进行抓取,则不应使用这两种方法检测到您。您可以检查机器人.txt文档是否安全