selenium登录知乎并且输出一些首页的标题demo
来源:互联网 发布:android c语言开发 编辑:程序博客网 时间:2024/06/05 02:03
转载自http://blog.csdn.net/uselym/article/details/52525025
主要用到了selenium进行登录验证,用cookies来给scrapy,然后用自带的xpath解析网页,其实似乎应该selenium登录解析放在中间件里的,不过这里先完成功能而已吧
# -*- coding: utf-8 -*-import scrapyfrom selenium import webdriverclass ZhihuSpider(scrapy.Spider): name = "zhihu" allowed_domains = ["zhihu.com"] start_urls = ( 'https://www.zhihu.com/', ) def get_cookies(self): driver = webdriver.Chrome() driver.get(self.start_urls[0]) driver.find_element_by_link_text(u"登录").click() driver.find_element_by_name("account").clear() driver.find_element_by_name("account").send_keys("your username") #修改为自己的用户名 driver.find_element_by_name("password").clear() driver.find_element_by_name("password").send_keys("keys") #修改为自己的密码 SignInURL = u"https://www.zhihu.com/#signin" try: if driver.find_element_by_id('captcha'): while True: if not SignInURL == driver.current_url: break pass pass finally: if SignInURL == driver.current_url: driver.find_element_by_css_selector("button.sign-button.submit").click() cookies = driver.get_cookies() driver.close() print cookies return cookies def after_login(self, response): sel = scrapy.Selector(response) #print response.body for i in range(1,10): xml = r'//*[@id="feed-%d"]/div[1]/div[2]/div[2]/h2/a/text()' %(i) titile = sel.xpath(xml).extract() if len(titile): print str(titile[0]) def parse(self, response): return scrapy.Request(url=self.start_urls[0], cookies=self.get_cookies(), callback=self.after_login)
阅读全文
0 0
- selenium登录知乎并且输出一些首页的标题demo
- python之selenium模拟登录知乎
- 登录知乎的爬虫
- 【总结】模仿知乎登录注册界面制作时遇见的一些微小的问题
- 知乎首页图片地址
- 模仿知乎首页代码
- python提取知乎首页问答的url
- python抓取知乎首页文本信息的简单实现
- selenium模拟登陆知乎
- 模拟登录-知乎
- Python4--登录知乎
- 登录知乎
- 爬虫登录知乎
- 模拟登录知乎
- 收集一些知乎上好的帖子
- 用OC翻译并且添加注解的一些官方Demo
- 模仿知乎界面的一个简单React demo
- React-Native 知乎日报首页
- C++ cout输出格式化(1)
- ESP8266擦除flash
- hadoop 2.x yarn 的工作机制
- Gensim Word2vec 使用教程
- http服务器的简单使用
- selenium登录知乎并且输出一些首页的标题demo
- 依赖注入 Dependency Injection (DI)
- 这些年我原来是做系统和协议的
- spring-boot怎么更改默认的端口号
- 执行mysql添加权限语法,报错提示:ERROR 1558 (HY000): Column count of mysql.user is wrong. Expected 42, found 39. C
- CDH 升级到5.12 /etc/alternatives 仍然指向旧版本的CDH
- android studio中,拉下分支,修改包名和相关信息之后,工程类名标红,不报错,也可以编译运行,怎么回事?
- ViewPager+Fragment使用FragmentPageAdapter时app与v4下FragmentManager冲突的解决
- Spring依赖注入(DI)详解