关于selenium爬虫自动登录爬取数据及自动精准抢购利器

  1. 首先下载关于selenium库;


  1. 关于自动登录12306网的源码(在源码中有各步骤的详细中文解决):

# 12306网站selenium自动化登录

from selenium.webdriver import Chrome, ChromeOptions
import time
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By
options = ChromeOptions()  # 创建谷歌浏览器

options.add_experimental_option("detach", True)  # 修改谷歌浏览器测试选项中的参数,使得打开后的浏览器不会自动关闭
# 添加_实验_选项

# options.add_argument('--start-maximized')  # 这里是不去掉网页头部的大窗口浏览
options.add_argument('--disable-blink-features=AutomationControlled')
# 修改谷歌浏览器中的window.navigator.webdriver(正常浏览器控制台中用来检测是不是机器操作的行为,正常浏览器为False)
# 通过以上对add_argument参数的修改即可

web = Chrome(options=options)  # 创建一个浏览器对象并将修改好的参数传入进去
web.get("https://kyfw.12306.cn/")
 # 打开网页
time.sleep(2)

web.find_element(By.XPATH, '//*[@id="J-userName"]').send_keys('123455678')   # 这两行分别是填入12306的账号与密码
web.find_element(By.XPATH,'//*[@id="J-password"]').send_keys('876545321')    # 这里用来演示就不是真实账号
web.find_element(By.XPATH,'//*[@id="J-login"]').click()
time.sleep(2)   # 这里的休眠很重要,不然反应太快脚本识别不到要拖动的东西,会报错!!!
btn = web.find_element(By.XPATH, '//*[@id="nc_1_n1z"]')   # 这里你注意找XPATH时在脚本自动打开的浏览器中找,不然位置不一样会报错
# 找到需要拖拽验证的滚动条
time.sleep(2)
ActionChains(web).drag_and_drop_by_offset(btn, 450, 0).perform()
# 从selenium.webdriver 中引入 ActionChains(链条)模块
# drag_and_drop_by_offset为拖拽的功能指令其中需传入的参数依次为 1.需拖拽的位置,2.横向拖拽的距离.3.纵向拖拽距离
# perform()执行指令
print(f"12306网自动化登录程序", end='\n''over!')

注:上面代码重要的点:

  1. 在使用selenium中遇到登陆时滑动进度条的问题;

  1. 在滑动进度条前要先解决浏览器在控制台可以识别出是否为机器或第三方来操作的问题(window.navigator.webdriver # 正常为False);

  1. 对与Ajax页面要使用time库来让程序休眠几秒,不然可能会报错;

  1. 对ActionChains()下的函数在其后加上perform()函数,才会执行;

  1. 最新的selenium库会程序执行完之后自动关闭,若不想让浏览器自动关闭 需在创建Chrome浏览器对象的时候对其选项中添加一个参数指定其bool(detach)值为True,即可解决此问题;

温馨:对与那些用cookies值登录用到验证码问题时,不用慌,这里可以在网上搜所那些比较成熟的验证码破解工具即可破解各种验证码,例如:(超级鹰)

ok,对上述程序就到这里咯,下次继续分享,如有歧义或其他更好的思路欢迎在评论区中指出。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Selenium是一个自动化测试工具,可以用来模拟用户在浏览器上的操作。通过使用Selenium,可以实现自动爬取网页数据的功能。 以下是使用Selenium自动爬取网页数据的步骤: 1. 安装Selenium Selenium可以使用Python的pip包管理工具进行安装,可以使用以下命令进行安装: ``` pip install selenium ``` 2. 安装浏览器驱动 Selenium需要使用浏览器驱动来控制浏览器。不同的浏览器需要不同的驱动程序。例如,如果要使用Chrome浏览器,需要下载Chrome驱动程序。 3. 启动浏览器 在Python代码中,可以使用Selenium来启动浏览器。例如,以下代码可以启动Chrome浏览器: ``` from selenium import webdriver driver = webdriver.Chrome() ``` 4. 访问网页 使用Selenium启动浏览器后,可以使用`get()`方法访问网页。例如: ``` driver.get("https://www.baidu.com") ``` 5. 查找元素 在访问网页后,可以使用Selenium查找网页上的元素。例如,可以使用`find_element_by_xpath()`方法查找页面上的元素。例如: ``` element = driver.find_element_by_xpath("//input[@name='wd']") ``` 6. 操作元素 找到元素后,可以使用Selenium来模拟用户在浏览器上的操作。例如,可以使用`send_keys()`方法来向输入框中输入文本: ``` element.send_keys("Python") ``` 7. 爬取数据 在操作完网页上的元素后,可以使用Selenium爬取数据。例如,可以使用`find_element_by_xpath()`方法来查找页面上的数据,并使用`text`属性获取文本: ``` result = driver.find_element_by_xpath("//div[@class='result']") print(result.text) ``` 8. 关闭浏览器 在爬取数据后,使用Selenium关闭浏览器: ``` driver.quit() ``` 以上就是使用Selenium自动爬取网页数据的步骤。需要注意的是,爬取网页数据需要遵守网站的爬虫协议,不要对网站造成过大的负担。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值