一。安装selenium             pip install selenium

二。安装相应浏览器的Driver(selenium 文档)    http://selenium-python.readthedocs.io/api.html   推荐使用Chrome

三。selenium的使用

 1 # -*- coding: utf-8 -*-
 2
 3 from selenium import webdriver
 4 from scrapy.selector import Selector
 5
 6
 7 #知乎的模拟登录
 8 browser = webdriver.Chrome(executable_path="E:/chromedriver.exe")  #路径是chromedriver.exe的存放的位置
 9 browser.get("https://www.zhihu.com/#signin")
10 browser.find_element_by_css_selector(".view-signin input[name='account']").send_keys("********") #帐号
11 browser.find_element_by_css_selector(".view-signin input[name='password']").send_keys("********") #密码
12 browser.find_element_by_id("captcha").send_keys(input('请输入验证码:'))
13 browser.find_element_by_css_selector(".view-signin button.sign-button").click() #登录
14 browser.quit()
15
16 实例二:
17 #可以用selenium得到js加载后的html,比如这样的话可以抓取到本来抓取的不到的一些字段(淘宝的交易量等等)
18 browser = webdriver.Chrome(executable_path="E:/chromedriver.exe")
19 browser.get("https://detail.tmall.com/item.htm?spm=a230r.1.14.3.yYBVG6&id=538286972599&cm_id=140105335569ed55e27b&abbucket=15&sku_properties=10004:709990523;5919063:6536025")
20 print(browser.page_source) #page_source就是js加载完的源代码
21 #browser.quit()
22 '''
23 如果是用selenium本身的选择器(python写的,比较慢),会很慢
24 所以现在转换成scrapy中的selector(他是用c语言写的,很快)
25 模版,也可以嵌入scrapy中
26 '''
27 t_selector=Selector(text=browser.page_source)
28 print(t_selector.xpath('//*[@id="J_StrPriceModBox"]/dd/span/text()').extract())

有时会遇到取不到内容的情况,看看是不是还没加载完毕,在中间sleep() 几秒就好了。

四。selenium模拟登录微博,模拟鼠标下拉

微博也有开放的API:http://open.weibo.com/wiki/%E9%A6%96%E9%A1%B5

 1 #selenium 完成微博模拟登录
 2 browser = webdriver.Chrome(executable_path="E:/chromedriver.exe")
 3 browser.get("http://weibo.com/")
 4 import time
 5 time.sleep(5)
 6 browser.find_element_by_css_selector("#loginname").send_keys("******")
 7 browser.find_element_by_css_selector(".info_list.password input[node-type='password']").send_keys("******")
 8 browser.find_element_by_css_selector(".info_list.login_btn a[node-type='submitBtn']").click()
 9 #下拉
10 for i in range(3):
11     '''三次下拉操作,这是javascript的知识     execute_script是用来执行js代码的'''
12     browser.execute_script("window.scrollTo(0, document.body.scrollHeight); var lenOfPage=document.body.scrollHeight; return lenOfPage;")
13     time.sleep(3)

五。chromedrive 不加载图片,phantomjs获取动态网页

chromedriver不加载图片:

1 #设置chromedriver不加载图片
2 #是固定的模板
3 chrome_opt=wibdriver.ChromeOptions()
4 prefs={"profile.managed_default_content_settings.images":2}
5 chrome_opt.add_experimental_option("prefs",prefs)
6 browser=webdriver.Chrome(executable_path="E:/chromedriver.exe",chrome_options=chrome_opt)
7 browser.get("http://weibo.com")

六。phantomjs获取动态网页:

下载地址:http://phantomjs.org/download.html 如果不能下载,复制链接到迅雷下载

淘宝的详情页实例

1 #phantomjs, 无界面的浏览器, 多进程情况下phantomjs性能会下降很严重
2 browser = webdriver.PhantomJS(executable_path="F:/迅雷下载/phantomjs-2.1.1-windows/bin/phantomjs.exe")
3 browser.get("https://detail.tmall.com/item.htm?spm=a230r.1.14.3.yYBVG6&id=538286972599&cm_id=140105335569ed55e27b&abbucket=15&sku_properties=10004:709990523;5919063:6536025")
4 print (browser.page_source)
5 browser.quit()

关于selenium的我推荐虫师的教程,还是很不错的。「UI 测试自动化selenium」汇总

本人知识学习的总结者

出处:http://www.cnblogs.com/jinxiao-pu/p/6809583.html

转载于:https://www.cnblogs.com/qingsheng/p/9202389.html

【爬虫】selenium动态页面请求与模拟登录知乎相关推荐

  1. Python爬虫初学(三)—— 模拟登录知乎

    模拟登录知乎 这几天在研究模拟登录, 以知乎 - 与世界分享你的知识.经验和见解为例.实现过程遇到不少疑问,借鉴了知乎xchaoinfo的代码,万分感激! 知乎登录分为邮箱登录和手机登录两种方式,通过 ...

  2. Python爬虫实战(5):模拟登录淘宝并获取所有订单

    Python爬虫入门(1):综述 Python爬虫入门(2):爬虫基础了解 Python爬虫入门(3):Urllib库的基本使用 Python爬虫入门(4):Urllib库的高级用法 Python爬虫 ...

  3. [Python]网络爬虫(三):使用cookiejar管理cookie 以及 模拟登录知乎

    大家好哈,上一节我们研究了一下爬虫的异常处理问题,那么接下来我们一起来看一下Cookie的使用. 为什么要使用Cookie呢? Cookie,指某些网站为了辨别用户身份.进行session跟踪而储存在 ...

  4. Python爬虫:模拟登录知乎完全详解

    [源码在最下面] 知乎登录分为邮箱登录和手机登录两种方式,通过浏览器的开发者工具查看,我们通过不同方式登录时,网址是不一样的.邮箱登录的地址email_url = 'https://www.zhihu ...

  5. Python爬虫实战之(五)| 模拟登录wechat

    作者:xiaoyu 微信公众号:Python数据科学 知乎:Python数据分析师 不知何时,微信已经成为我们不可缺少的一部分了,我们的社交圈.关注的新闻或是公众号.还有个人信息或是隐私都被绑定在了一 ...

  6. Python爬虫实战之(五)| 模拟登录wechat 1

    作者:xiaoyu 微信公众号:Python数据科学 知乎:Python数据分析师 不知何时,微信已经成为我们不可缺少的一部分了,我们的社交圈.关注的新闻或是公众号.还有个人信息或是隐私都被绑定在了一 ...

  7. Selenium WebDrive使用Edge浏览器模拟登录163邮箱

    ** Selenium WebDrive使用Edge浏览器模拟登录163邮箱(详细过程及代码) ** 1.首先要在pycharm中下载好Selenium 2.然后下载浏览器驱动这里是链接 (https ...

  8. python3模拟登录知乎

    1,前言 在爬虫的世界里,模拟登录是一项必备的技能,很多网站登录才能有浏览信息的权限,今天就在python来模拟登录知乎 2,获取登录时post的参数 在网页上输入知乎的url:https://www ...

  9. 小试牛刀:使用Python模拟登录知乎

    2019独角兽企业重金招聘Python工程师标准>>> 作者:刘帝伟(微博:@拾毅者) 原文链接:点击这里 BitTiger尊重原创版权,转载已经过授权. 最近突然对爬虫兴趣倍增,主 ...

  10. 2019年最新 Python 模拟登录知乎 支持验证码

    2019年最新 Python 模拟登录知乎 支持验证码和保存 Cookies 知乎的登录页面已经改版多次,加强了身份验证,网络上大部分模拟登录均已失效,所以我重写了一份完整的,并实现了提交验证码 (包 ...

最新文章

  1. 9开启线程日志_GC 日志分析
  2. 福利直播 | 12年阿里巴巴大数据之路亲历者详解数据中台
  3. C++ 中判断非空的错误指针
  4. JavaSE(二十)——面向对象的概念及三个基本特征
  5. 七十、Vue城市页面Ajax动态渲染和兄弟组件数据传递
  6. java 类一定要声明成public_类和对象练习题
  7. 协议转换器安全使用须知
  8. 2021泌阳高考成绩查询,驻马店教育局网站2021年泌阳中招成绩查询系统
  9. 资产管理日志分类参考截图
  10. 给model模型传数组参数
  11. excel中查找两列数据中的重复数据
  12. 【学习笔记】多目标优化问题分解成若干简单多目标子问题--MOEA/D-M2M
  13. 矩阵三角分解matlab,4矩阵三角分解法.ppt
  14. python socket清空接收缓冲区_Python网络编程——修改套接字发送和接收的缓冲区大小...
  15. python怎么输出百分数_Python 如何输出百分比
  16. sql语句用法的一部分整理
  17. 使用ssh对服务器进行登录
  18. 计算字符串的距离(编辑距离)
  19. i9300一键root——工具百度一键root
  20. mybatis-plus出错:Invalid bound statement (not found): com.kuang.mapper.UserMapper.selectList

热门文章

  1. windows 7 等 公文包 功能 作用 使用说明
  2. html里文字跳动,Web前端
  3. oracle脚本转mpp脚本,范本:使用expdp/impdp克隆生成一个新数据库
  4. java linux ifstat,ifstat命令
  5. 决策过程并举例_成本效益分析举例
  6. win10连接mq_Win10环境下配置RocketMQ
  7. c++中的explicit关键字及隐式类型转换
  8. [转载]MySQL事务隔离级别
  9. CSDN Markdown帮助文档
  10. scanner python_Python之Scanner编写