爬虫篇——selenium(webdriver)进行用户登录并爬取数据)
爬虫篇——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)进行用户登录并爬取数据)相关推荐
- 写了一个Windows服务,通过C#模拟网站用户登录并爬取BUG列表查询有没有新的BUG,并提醒我...
写了一个Windows服务,通过C#模拟网站用户登录并爬取BUG列表查询有没有新的BUG,并提醒我 1.HttpUtil工具类,用于模拟用户登录以及爬取网页: using System; using ...
- 自学爬虫项目(二)一一利用selenium模拟淘宝登录,爬取商品数据
文章目录 前言 一.明确目标 二.分析过程 三.代码封装 总结 前言 你是否还在为学习Python没有方向而苦恼?快来跟着壹乐一起学习吧!让我们共同进步! 今天我们用selenium与Beautifu ...
- python 模拟浏览器selenium_使用Selenium模拟浏览器,实现自动爬取数据
最近需要在一个网站下载一批数据.但是输入一个查询,返回三四万条结果,每次只能导出500条,而且每次还得输入下载条目的范围!这样点击下载,还不要了我的老命.于是乎想自动化这个过程. 我的需求主要是两点: ...
- 使用Selenium模拟浏览器,实现自动爬取数据
最近需要在一个网站下载一批数据.但是输入一个查询,返回三四万条结果,每次只能导出500条,而且每次还得输入下载条目的范围!这样点击下载,还不要了我的老命.于是乎想自动化这个过程. 我的需求主要是两点: ...
- python自动登录网站爬取数据_Python爬虫实战:自动化登录网站,爬取商品数据
前言 随着互联网时代的到来,人们更加倾向于互联网购物.某东又是电商行业的巨头,在某东平台中有很多商家数据.今天带大家使用python+selenium工具获取这些公开的商家数据 适合阅读人群:sele ...
- 爬虫篇——采集单机游戏(网页游戏),爬取小游戏
接到需求,要求要将几个好玩的网页版本的单机小游戏.采集到我们的服务器中. 这里以 水枪射手 这个游戏举例 http://m.7k7k.com/player/198961.htm?uc_biz_str= ...
- python爬虫十二:初步使用Scrapy框架爬取数据
1.通过pipelines操作拿到的数据 要点一:爬虫文件必须通过关键字yield生成器才能与pipelines建立链接才可以操作,当运行爬虫文件之后执行的顺序如下图简介,如果重写模块或者内部方法可能 ...
- Python爬虫实战(一):翻页爬取数据存入SqlServer
目录 前言 爬取目标 准备工作 代码分析 1. 设置翻页 2. 获取代理ip 3. 发送请求 4. 获取详情页地址 5. 提取详情信息 6. 存入数据库 7. 循环实现翻页 8. 启动 前言
- 基于Python 3.11.0版本模拟登录并爬取西安理工大学正方教务系统的学分绩点并计算
目录 使用软件以及运行环境 对于环境的搭建 代码思路 需要导入的包 模拟登录 爬取数据 绩点计算器 功能一 功能二 完整代码 使用软件以及运行环境 win10系统,Vs Code软件,Python 3 ...
最新文章
- YOLO之父退出CV界表达抗议,拒绝AI算法用于军事和隐私窥探
- 处理字符串时常用方法0914
- 使用脚本将数据从辅助数据源传送到 InfoPath 域
- 简单的实现微信获取openid
- 当NLP遇见OCR:如何提升智能文档分析效果?
- windows XP上实现python2.7.5和python3.4.3共存
- Cloud Programming Simplified: A Berkerley View on Serverless Computing笔记
- mysql怎么跳出while循环_mysql while,loop,repeat循环,符合条件跳出循环
- python协程asyncio 应用_Python-如何使用asyncio同时运行多个协程?
- Android辅助开发工具说明
- 质数的后代c语言,(信息学奥赛辅导)程序设计试题汇编(答案10)
- 虚拟机vCPU和vNUMA调整大小-经验法则
- 隐藏版本信息号返回服务器名,配置服务器版本信息隐藏
- 泛化误差,交叉验证和特征选择
- rocketmq安装教程以及遇到的坑排查
- Android CI with jenkins in ubuntu
- 很棒的VC界面库 - GuiToolkit
- android模拟器虚拟机的下载、安装和使用
- pwnable.kr-passcode
- matlab 指数拟合原理,matlab指数增长和阻滞增长拟合代码.doc
热门文章
- 消息队列设计的精髓基本都藏在本文里了
- 多线程:线程同步的几种方式
- element ui表格点击整行选择_element-ui实现动态表头的表格问题汇总
- 未来的数据中心(二)
- 定位漏水与非定位漏水的区别?
- js luhn算法_不会飞的鸟
- 成功解决ERROR: Could not find a version that satisfies the requirement xgboost (from versions: none) ERR
- 成功解决ValueError: If using all scalar values, you must pass an index
- DayDayUp:三观一致必将取代血缘关系,成为新的人际纽带(博主推荐文章)
- ML之回归预测:利用十(xgboost,10-1)种机器学习算法对无人驾驶汽车系统参数(2017年的data,18+2)进行回归预测值VS真实值——bug调试记录