`
芝加哥09
  • 浏览: 60563 次
社区版块
存档分类
最新评论

网络爬虫:利用Selenium实现登录

    博客分类:
  • Java
阅读更多

本文转载:通通学--知识学习与分享平台

转载链接:http://www.tongtongxue.com/archives/180.html

 

写过爬虫程序的码农都知道,实现爬虫程序登录的方法有多种,我这利用Selenium来实现登录。提供源代码下载

 



 

本案例实现登录的网站是iteye,同时登录时选择第三方登录工具,本处利用的新浪微博来登录。

 

以下是关键代码:

 

程序启动类:WebSpider.java

 

package com.tongtongxue.webspider;

import com.tongtongxue.webspider.fetcher.Fetcher;

public class WebSpider {

    public static void main(String[] args) throws Exception {
        Fetcher fetcher = new Fetcher();
        fetcher.fetch();
    }
}

 

抓取类:Fetcher.java

 

package com.tongtongxue.webspider.fetcher;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

import com.thoughtworks.selenium.Selenium;
import com.thoughtworks.selenium.webdriven.WebDriverBackedSelenium;


public class Fetcher {
    private WebDriver webDriver;
    private Selenium selenium;

    // 第三方的登录工具的用户名,我这里用的是新浪微博
    private String username = "xxxxxx";
    // 第三方的登录工具的密码,我这里用的是新浪微博
    private String password = "xxxxxx";

    public Fetcher() throws Exception {
        // 设置google浏览器的驱动位置
        System.setProperty("webdriver.chrome.driver" , "E:/it_jar_file/chromedriver_win32/chromedriver.exe");
        webDriver = new ChromeDriver();
        webDriver.manage().timeouts().pageLoadTimeout(12000, TimeUnit.SECONDS);
        selenium = new WebDriverBackedSelenium(webDriver, "http://www.iteye.com");
        selenium.setTimeout("120000");
    }

    public void fetch() throws Exception {
        // 这是入口网址
        webDriver.get("http://www.iteye.com/login");
        waitForPageToLoad();

        // 选择第三方登录工具
        selenium.click("css=div.third a[href='/auth/weibo']");
        waitForPageToLoad();

        // 输入用户名
        webDriver.findElement(By.id("userId")).sendKeys(username);
        // 输入密码
        webDriver.findElement(By.id("passwd")).sendKeys(password);

        Thread.sleep(2000);

        // 点击登录按钮
        selenium.click("css=p.oauth_formbtn a[node-type='submit']");
    }

    private void waitForPageToLoad() {
        selenium.waitForPageToLoad("120000");
    }
}

 

其中源代码下载:源代码

其中Google浏览器驱动软件:chromedriver

  • 大小: 16.6 KB
1
1
分享到:
评论

相关推荐

    python+Selenium爬虫:模拟登录+自动点击.zip

    通过这个压缩包中的示例,你将能够了解到如何结合Python和Selenium实现模拟登录和自动点击,从而抓取需要的数据。记得在实际操作时,遵守网站的robots.txt协议,尊重数据抓取的道德规范,避免对网站造成过大负担。...

    python爬虫 使用selenium 实现中英互译

    在这个项目中,我们专注于使用Selenium实现中英互译功能,这对于处理网页上的多语言内容非常有用。 首先,该项目提供了两种版本的翻译器:一个可执行的exe文件和一个Python源代码文件(translater.exe和translater....

    淘宝商品爬虫, selenium破解滑块验证(目前可用)

    淘宝商品爬虫与Selenium破解滑块验证是网络爬虫技术在电商领域的应用,涉及到的主要知识点包括Python编程、网络爬虫原理、Selenium库的使用以及动态验证码的破解策略。以下将详细介绍这些内容。 首先,Python编程是...

    python爬虫案例与selenium使用

    Selenium在爬虫中的应用主要是应对那些依赖用户交互才能显示完整内容的网站,如动态加载的数据、弹窗登录、验证码识别等。学习如何使用Selenium,可以极大地提高爬虫的实用性。 文件名“案例与selenium”暗示了这个...

    网络爬虫WebController和selenium的最新jar包

    在Java编程环境中,我们经常会用到WebController和Selenium这两个库来实现高效且灵活的网络爬虫。 WebController是一个轻量级的HTTP客户端库,它可以方便地进行HTTP请求,包括GET、POST等方法,支持设置请求头、...

    基于Python3的动态网站爬虫,使用selenium+phantomjs实现爬取动态网站, 本项目以爬取今日头条为例.zip

    在IT领域,网络爬虫是数据获取的重要工具,特别是对于那些使用JavaScript动态加载内容的网站。本项目聚焦于使用Python3构建动态网站爬虫,主要依赖于selenium库和PhantomJS浏览器模拟器,以爬取像今日头条这样的动态...

    基于Selenium的Python网络爬虫的实现.pdf

    综上所述,本文介绍了基于Selenium技术的Python网络爬虫的实现方式,涵盖了网络爬虫的设计目的、工作流程、技术架构以及实际编程中的应用技巧。这些知识点不仅适用于有经验的开发人员,也为初学者提供了清晰的学习...

    用selenium爬猎聘职位列表_猎聘_爬虫_python_selenium_

    在IT行业中,网络爬虫是一种常见的数据获取技术,用于自动化抓取互联网上的信息。本案例主要探讨如何使用Python的Selenium库来爬取猎聘网站的职位列表,这对于数据分析、人才招聘研究或个人求职者了解市场动态都有很...

    selenium爬虫技术

    1. **动态内容抓取**:传统的网络爬虫可能无法很好地处理JavaScript渲染的内容,但Selenium可以通过执行JavaScript来获取这些动态加载的数据。 2. **多浏览器兼容**:Selenium支持多种浏览器,这意味着你可以针对...

    爬虫+selenium自动化+C#+采集器+strong-web-crawler-master

    本篇文章将围绕“Strong-Web-Crawler-master”项目,详细介绍如何利用C#编程语言结合Selenium自动化工具,构建一个强大的Web爬虫。 首先,C#是一种面向对象的、类型安全的编程语言,由微软开发,广泛应用于Windows...

    网络爬虫-如何通过selenium框架实现自动切换浏览器页面-Python实例源码.zip

    接下来,让我们来看一个Python代码示例,展示如何使用Selenium实现自动切换页面: ```python from selenium import webdriver # 创建浏览器对象,这里以Chrome为例 driver = webdriver.Chrome() # 设置目标URL ...

    PYTHON爬虫+selenium+Request+Python 网络数据采集

    Python作为一门强大且易学的语言,是实现爬虫技术的理想选择。本资料包主要涵盖了使用Python进行网络数据采集的相关知识,包括基础的requests库、高级的selenium库以及正则表达式的应用。 首先,我们来详细了解`...

    基于selenium的google网站爬虫.zip

    这个“基于Selenium的Google网站爬虫”项目,就是利用Selenium库来自动化搜索并抓取Google网站上的特定信息。 【描述】:基于Selenium的Google网站爬虫.zip 这个压缩包文件包含了一个Python代码项目,其目标是通过...

    网络爬虫文档资料

    在Java中,实现网络爬虫是一项常见的任务,尤其对于数据挖掘和数据分析领域。本文档资料将深入探讨如何利用Java语言来构建有效的网络爬虫。 一、基础概念 1. HTTP协议:网络爬虫主要基于HTTP或HTTPS协议与服务器...

    基于selenium的淘宝爬虫系统.zip

    利用Selenium,我们可以模拟真实用户登录淘宝,浏览商品,甚至执行JavaScript代码来触发页面加载,从而获取到完整的商品信息。 **实现步骤** 1. **环境配置**:首先确保Python环境已经安装了Selenium库,并且下载了...

    网络爬虫资料,全套Java写的

    本套资料专注于Java语言实现的网络爬虫技术,旨在帮助用户掌握如何利用Java进行高效、稳定的网页抓取。下面将详细介绍Java网络爬虫的相关知识点。 1. **基础概念** - 网络爬虫:网络爬虫(Web Crawler)是按照一定...

    爬虫:httpclient+jsoup

    在IT领域,网络爬虫是一种自动化程序,用于从互联网上抓取信息,是数据分析和信息检索的重要工具。本文将详细探讨使用Java中的两种库——HttpClient和Jsoup,以及它们结合使用来构建网页爬虫的方法。 HttpClient是...

    网络爬虫Python实现

    本主题将深入探讨如何利用Python实现一个网络爬虫系统,特别关注在GUI环境中进行操作,以及处理TCP/IP通信和网页数据提取。 首先,Python中的`requests`库是网络爬虫的基础,它用于发送HTTP请求并接收服务器的响应...

    爬虫实例:微博、b站、csdn、淘宝、今日头条、知乎、豆瓣、知乎APP、大众点评.zip

    爬取知乎时,要处理登录验证、动态加载、滑动刷新等问题,可利用requests、BeautifulSoup、Selenium等工具。 7. 豆瓣爬虫:豆瓣提供了电影、书籍、音乐的评分和评论,爬取豆瓣数据有助于了解用户喜好和文化趋势。在...

Global site tag (gtag.js) - Google Analytics