使用selenium模块爬取验证码页面,selenium模块需要另外安装这里不讲环境的配置,我有一篇博客有专门讲ubuntn下安装和配置模拟浏览器的开发

spider的代码

 # -*- coding: utf-8 -*-
from selenium import webdriver
import scrapy
from scrapy.selector import Selector
from time import sleep class MydoubanSpider(scrapy.Spider):
name = "mydouban_moni" def __init__(self, ):
super(MydoubanSpider, self).__init__()
self.start_urls = ['https://www.douban.com/']
self.driver = webdriver.Chrome()
self.driver.get("https://accounts.douban.com/login")
sleep(1) def parse(self, response):
yanzhengma = raw_input('请输入验证码:')
name = self.driver.find_element_by_xpath('//*[@id="email"]')
name.send_keys('username用户名')
password = self.driver.find_element_by_xpath('//*[@id="password"]')
password.send_keys('password密码')
key = self.driver.find_element_by_xpath('//*[@id="captcha_field"]')
key.send_keys(yanzhengma)
summit = self.driver.find_element_by_xpath('//*[@id="lzform"]/div[7]/input')
summit.click()
sleep(1)
sel = Selector(text=self.driver.page_source)
myname = sel.response.xpath('//*[@id="db-global-nav"]/div/div[1]/ul/li[2]/a/span[1]//text()').extract()
print ''.join(myname)
print '====================='
pass

  如果出现这个HTTP status code is not handled or not allowed  错误 说明还有spider的头需要配置这个可以用伪装代理解决在setting.py中设置

github完整代码地址:https://github.com/sea1234/myyangzhengma

最新文章

  1. 关于dp dip dpi px
  2. Design Pattern: Observer Pattern
  3. centos 查看cpu个数、核数
  4. 升级NC6.3
  5. logstash tomcat catalina.out zabbix 插件不会引起崩溃
  6. java.util.logging.Logger基础教程
  7. Swift - 选择框(UIPickerView)的用法
  8. 深入研究Java类载入机制
  9. ios网站
  10. iOS10适配——相机,通讯录,麦克风等权限设置
  11. spring切面编程AOP 范例一
  12. CMDB资产采集
  13. Leetcode_154_Find Minimum in Rotated Sorted Array
  14. metasploit无法连接postgresql
  15. 谷歌开源的一个BTREE实现 Go语言
  16. Spring事务说明与自实现
  17. NUCLEO-F767ZI评测 NUCLEO-F767ZI入门教程CubeMX
  18. Vue 实现一个中国地图
  19. 小米范工具系列之六:小米范 web查找器2.x版本发布
  20. 保护心灵窗口——防蓝光软件f.lux

热门文章

  1. Memcached get 命令
  2. Android Fragment解析(下)
  3. Nginx、Apache工作原理及Nginx为何比Apache高效
  4. UVA-10765 Doves and bombs (双连通分量)
  5. Linux操作系统简介
  6. Python执行Linux系统命令方法
  7. Factorialize a Number
  8. 020——VUE中变异方法push的留言版实例讲解
  9. div居中和table居中,jQuery获取下拉列表值
  10. C++高级编程1 C++速成