Pra*_*ava 5 javascript python selenium scrapy web-scraping
我正在尝试使用Scrapy(一个python框架)从网站上删除数据.我可以使用蜘蛛从网站上获取数据,但是当我尝试浏览网站时会出现问题.
根据这篇文章,Scrapy不能很好地处理Javascript.
另外,如接受的答案所述,我不能使用mechanize或lxml.它建议使用组合Selenium and Scrapy.
按钮的功能:
我正在浏览网站上的优惠.按钮的功能是显示更多优惠.所以点击它,它会调用一个加载结果的javascript函数.
我也在看CasperJS and PhantomJS.他们会工作吗?
我只需要自动点击一个按钮.我该怎么做?
首先,是的 - 你可以将PhantomJSGhostdriver与 python 一起使用。它内置于python-selenium:
pip install selenium
Run Code Online (Sandbox Code Playgroud)
演示:
>>> from selenium import webdriver
>>> driver = webdriver.PhantomJS()
>>> driver.get('/sf/ask/1946927601/')
>>> driver.title
u'javascript - Web scraping: Automating button click - Stack Overflow'
Run Code Online (Sandbox Code Playgroud)
还有其他几个线程提供了“scrapy+selenium”蜘蛛的示例:
还有一个scrapy-webdriver模块可能也可以提供帮助。
将 scrapy 与 selenium 结合使用会给您带来巨大的开销,并且即使使用无头浏览器也会大大减慢速度PhantomJS。
您很有可能通过模拟底层请求来模仿“显示更多优惠”按钮的点击,以获取您需要的数据。使用浏览器开发人员工具来探索触发哪种请求并用于scrapy.http.Request蜘蛛内部的模拟。
| 归档时间: |
|
| 查看次数: |
4160 次 |
| 最近记录: |