我正在尝试从下面的网址中抓取数据。但是selenium有时会driver.get(url)出错[Errno 104] Connection reset by peer,有时会失败[Errno 111] Connection refused。 在极少数情况下,它可以正常工作, 并且在使用实际浏览器的Mac上,同一蜘蛛每次都能正常工作。因此,这与我的无关spider。
driver.get(url)
[Errno 104] Connection reset by peer
[Errno 111] Connection refused
spider
尝试了许多解决方案,例如在页面上等待获取选择器,隐式等待,使用selenium-requests传递正确的请求标头等,但似乎没有任何效果。
http://www.snapdeal.com/offers/deal-of-the-day https://paytm.com/shop/g/paytm-home/exclusive-discount-deals
我使用的python,selenium与headless Firefox webdriver实现这一目标。操作系统是centos 6.5。
python
selenium
headless Firefox webdriver
centos 6.5
注意: 我有许多AJAX沉重的页面被成功抓取,下面是一些页面。
AJAX
http://www.infibeam.com/deal-of-the-day.html, http://www.amazon.in/gp/goldbox/ref=nav_topnav_deals
已经花了很多天试图调试问题,但是没有运气。任何帮助,将不胜感激。
经过几天的纠缠,终于找到了原因。在这里写出来是为了社区的利益。无头浏览器由于缺少RAM服务器而失败,来自的奇怪错误消息webdriver是真实的pita。
RAM
webdriver
pita
服务器连续运行了好60几天没有重启,重新启动就可以了。将交换次数增加3倍后,过去几天一直没有遇到问题。还安排了清理页面文件缓存的任务(http://www.yourownlinux.com/2013/10/how- to-free-up-release-unused-cached-memory-in- linux.html)。
60