博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Selenium+PhantomJS实现简易有道翻译爬虫
阅读量:7025 次
发布时间:2019-06-28

本文共 2235 字,大约阅读时间需要 7 分钟。

Selenium一款自动化测试工具,当然用来写爬虫也是没有问题的。它支持Chrome、Safari、Firefox等主流界面式浏览器,另外它也支持多种语言开发,比如 Java,C,Ruby,Python等。PhantomJS是一个无界面的,可脚本编程的WebKit浏览器引擎,当我们爬一些网站,页面全js渲染,如果逐个去分析后台请求,对于web高手无所谓,但对于像我这样连js都不太懂的小白来说,简直崩溃。这个时候用PhantomJS就可以帮助我们像浏览器一样渲染js处理的页面。

代码很简单,关键地方已注释:

1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 # @Time     : 2018/1/5 16:55 4 # @Author   : Eivll0m 5 # @Site     : https://github.com/Eivll0m 6 # @File     : YD_dict.py 7 # @Software : PyCharm 8  9 from selenium import webdriver10 from selenium.webdriver.common.desired_capabilities import DesiredCapabilities11 import sys12 reload(sys)13 sys.setdefaultencoding('utf8')14 15 class YoudaoDict:16     def __init__(self):17         self.url = 'http://fanyi.youdao.com'18         self.agent = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36'19         self.dcap = dict(DesiredCapabilities.PHANTOMJS)20         self.dcap["phantomjs.page.settings.userAgent"] = self.agent21         self.service_args = []22         self.service_args.append('--load-images=no')  ##关闭图片加载23         self.service_args.append('--disk-cache=yes')  ##开启缓存24         self.service_args.append('--ignore-ssl-errors=true')  ##忽略https错误25         self.browser = webdriver.PhantomJS('D:\\Program Files\\phantomjs-2.1.1-windows\\bin\\phantomjs.exe',service_args=self.service_args)26 27     def transTarget(self):28         browser = self.browser29         browser.get(self.url)30         browser.implicitly_wait(3)31         text = browser.find_element_by_id('inputOriginal')32         text.clear()33         while 1:34             key = str(raw_input('请输入您需要翻译的内容:'))35             if key == 'quit':36                 browser.quit()37                 exit()38             if key:39                 break40         text.send_keys(key.decode('utf-8'))41         while 1:42             try:43                 bro = browser.find_element_by_css_selector('#transTarget > p > span')44                 break45             except:46                 print '还未定位到元素!'47         return bro.text48 49 if __name__ == '__main__':50     D = YoudaoDict()51     while 1:52         print D.transTarget()

运行效果:

转载于:https://www.cnblogs.com/Eivll0m/p/8455378.html

你可能感兴趣的文章
Android 透明度百分比对应的 十六进制
查看>>
Python 之 字符串格式化输出定义
查看>>
zabbix3.2安装实践
查看>>
RCS高可用集群软件
查看>>
【专访】黄健宏:为什么真正的聪明人喜欢用笨方法?
查看>>
path和classPath的区别
查看>>
Ubuntu添加硬盘实验
查看>>
无线网络安全技术应用
查看>>
【JEECG-Boot 技术文档】新手入门教程
查看>>
软件开发--调试器GDB
查看>>
mysql慢查询
查看>>
DNS服务基础
查看>>
CentOS 7安装MySql
查看>>
ABAP隐式增强-SAP EASY ACCESS 开始界面图片增强实战
查看>>
单向循环链表
查看>>
mysql安装
查看>>
eyoucms 文章列表下的描述判断无描述内容时显示自定义内容
查看>>
sizeof(联合体)
查看>>
前端开发——垂直水平居中
查看>>
数字中国创新大赛决赛名单出炉,与华为云 EI 一起挑战书法识别
查看>>