爬虫篇——selenium(webdriver)进行用户登录并爬取数据

  • 摘要
  • (一)创建browser对象
  • (二)用户登录
  • (三)数据爬取

摘要

本文主要介绍了如何通过selenium使用Chormedriver进行用户登录并爬取数据,使用过程中需注意合理使用selenium.webdriver.support.expected_conditions
selenium.webdriver.support.ui.WebDriverWait

(一)创建browser对象

chromedriver.exe的下载地址为:点此进行下载

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.common import by
from selenium.webdriver.common.action_chains import ActionChains
from lxml import etreeclass ChromeCrawl(object):def __init__(self):chrome_options = webdriver.ChromeOptions()prefs = {"profile.managed_default_content_settings.images": 2}chrome_options.add_experimental_option("prefs", prefs)chrome_options.add_experimental_option('excludeSwitches', ['enable-automation']) chrome_options.add_argument('--headless')chrome_options.add_argument('--no-sandbox')chrome_options.add_argument('--disable-gpu')self.browser = webdriver.Chrome(executable_path="./tools/chromedriver.exe", chrome_options=chrome_options)self.browser.set_page_load_timeout(60)self.browser.set_script_timeout(60)self.wait = WebDriverWait(self.browser, 60)

(二)用户登录

    def login(self):username = "*****"passwd = "******"self.browser.get('https:********login')self.browser.implicitly_wait(60)elem = self.browser.find_element_by_id("username")elem.send_keys(username)elem = self.browser.find_element_by_id("password")elem.send_keys(passwd)button = self.wait.until(expected_conditions.element_to_be_clickable((by.XPATH, '//*****')))# 根据自己的网页进行设置ActionChains(self.browser).click(button).perform()self.wait.until(expected_conditions.presence_of_element_located((by.CLASS_NAME, '******')))

(三)数据爬取

 def crawl(self):self.browser.get('https:******')self.wait.until(expected_conditions.presence_of_element_located((by.CLASS_NAME, '******')))html = etree.HTML(self.browser.page_source)tmp = html.xpath('//*****')

by CyrusMay 2022 01 25

一生要有多少的辗转
才能走到幸福的彼岸
——————五月天(青空未来)——————

爬虫篇——selenium(webdriver)进行用户登录并爬取数据)相关推荐

  1. 写了一个Windows服务,通过C#模拟网站用户登录并爬取BUG列表查询有没有新的BUG,并提醒我...

    写了一个Windows服务,通过C#模拟网站用户登录并爬取BUG列表查询有没有新的BUG,并提醒我 1.HttpUtil工具类,用于模拟用户登录以及爬取网页: using System; using ...

  2. 自学爬虫项目(二)一一利用selenium模拟淘宝登录,爬取商品数据

    文章目录 前言 一.明确目标 二.分析过程 三.代码封装 总结 前言 你是否还在为学习Python没有方向而苦恼?快来跟着壹乐一起学习吧!让我们共同进步! 今天我们用selenium与Beautifu ...

  3. python 模拟浏览器selenium_使用Selenium模拟浏览器,实现自动爬取数据

    最近需要在一个网站下载一批数据.但是输入一个查询,返回三四万条结果,每次只能导出500条,而且每次还得输入下载条目的范围!这样点击下载,还不要了我的老命.于是乎想自动化这个过程. 我的需求主要是两点: ...

  4. 使用Selenium模拟浏览器,实现自动爬取数据

    最近需要在一个网站下载一批数据.但是输入一个查询,返回三四万条结果,每次只能导出500条,而且每次还得输入下载条目的范围!这样点击下载,还不要了我的老命.于是乎想自动化这个过程. 我的需求主要是两点: ...

  5. python自动登录网站爬取数据_Python爬虫实战:自动化登录网站,爬取商品数据

    前言 随着互联网时代的到来,人们更加倾向于互联网购物.某东又是电商行业的巨头,在某东平台中有很多商家数据.今天带大家使用python+selenium工具获取这些公开的商家数据 适合阅读人群:sele ...

  6. 爬虫篇——采集单机游戏(网页游戏),爬取小游戏

    接到需求,要求要将几个好玩的网页版本的单机小游戏.采集到我们的服务器中. 这里以 水枪射手 这个游戏举例 http://m.7k7k.com/player/198961.htm?uc_biz_str= ...

  7. python爬虫十二:初步使用Scrapy框架爬取数据

    1.通过pipelines操作拿到的数据 要点一:爬虫文件必须通过关键字yield生成器才能与pipelines建立链接才可以操作,当运行爬虫文件之后执行的顺序如下图简介,如果重写模块或者内部方法可能 ...

  8. Python爬虫实战(一):翻页爬取数据存入SqlServer

    目录 前言 爬取目标 准备工作 代码分析 1. 设置翻页 2. 获取代理ip 3. 发送请求 4. 获取详情页地址 5. 提取详情信息 6. 存入数据库 7. 循环实现翻页 8. 启动 前言

  9. 基于Python 3.11.0版本模拟登录并爬取西安理工大学正方教务系统的学分绩点并计算

    目录 使用软件以及运行环境 对于环境的搭建 代码思路 需要导入的包 模拟登录 爬取数据 绩点计算器 功能一 功能二 完整代码 使用软件以及运行环境 win10系统,Vs Code软件,Python 3 ...

最新文章

  1. YOLO之父退出CV界表达抗议,拒绝AI算法用于军事和隐私窥探
  2. 处理字符串时常用方法0914
  3. 使用脚本将数据从辅助数据源传送到 InfoPath 域
  4. 简单的实现微信获取openid
  5. 当NLP遇见OCR:如何提升智能文档分析效果?
  6. windows XP上实现python2.7.5和python3.4.3共存
  7. Cloud Programming Simplified: A Berkerley View on Serverless Computing笔记
  8. mysql怎么跳出while循环_mysql while,loop,repeat循环,符合条件跳出循环
  9. python协程asyncio 应用_Python-如何使用asyncio同时运行多个协程?
  10. Android辅助开发工具说明
  11. 质数的后代c语言,(信息学奥赛辅导)程序设计试题汇编(答案10)
  12. 虚拟机vCPU和vNUMA调整大小-经验法则
  13. 隐藏版本信息号返回服务器名,配置服务器版本信息隐藏
  14. 泛化误差,交叉验证和特征选择
  15. rocketmq安装教程以及遇到的坑排查
  16. Android CI with jenkins in ubuntu
  17. 很棒的VC界面库 - GuiToolkit
  18. android模拟器虚拟机的下载、安装和使用
  19. pwnable.kr-passcode
  20. matlab 指数拟合原理,matlab指数增长和阻滞增长拟合代码.doc

热门文章

  1. 消息队列设计的精髓基本都藏在本文里了
  2. 多线程:线程同步的几种方式
  3. element ui表格点击整行选择_element-ui实现动态表头的表格问题汇总
  4. 未来的数据中心(二)
  5. 定位漏水与非定位漏水的区别?
  6. js luhn算法_不会飞的鸟
  7. 成功解决ERROR: Could not find a version that satisfies the requirement xgboost (from versions: none) ERR
  8. 成功解决ValueError: If using all scalar values, you must pass an index
  9. DayDayUp:三观一致必将取代血缘关系,成为新的人际纽带(博主推荐文章)
  10. ML之回归预测:利用十(xgboost,10-1)种机器学习算法对无人驾驶汽车系统参数(2017年的data,18+2)进行回归预测值VS真实值——bug调试记录