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