爬虫案例——模拟登录QQ空间

学了2个多月的爬虫了,终于找到一点儿好玩的东西可以写一写。
模拟登录QQ空间,完成这个的要求:
首先需要下载库selenium,这个在anaconda中是没有的,需要下载。(在这就不说怎么下载了)
其次就是下载某某浏览器的驱动程序(这个其实也好下载,就是在配置的时候容易出错,如果出错去网上搜索就能够找到好的解决方法,读者自行解决)

Python 网络爬虫
from selenium import webdriver
from time import sleep

bro = webdriver.Chrome(executable_path='./chromedriver')

bro.get('https://qzone.qq.com/')

bro.switch_to.frame('login_frame')

a_tag = bro.find_element_by_id("switcher_plogin")
a_tag.click()


userName_tag = bro.find_element_by_id('u')
password_tag = bro.find_element_by_id('p')
sleep(1)
userName_tag.send_keys('328410948')
sleep(1)
password_tag.send_keys('123456789')
sleep(1)
btn = bro.find_element_by_id('login_button')
btn.click()

sleep(3)

bro.quit()

完成这个之后就是代码的书写了
大致思路:
其实也没有啥大致的思路,这不和算法似的要想,就是了解selenium库,定位到某个标签,进行输入或者点击操作就可以了。
代码奉上:

# -*- coding: utf-8 -*-
"""
Created on Wed Nov  3 13:58:06 2021

@author: Lenovo
"""
import requests,time
import csv
# import SESSION
from bs4 import BeautifulSoup
import asyncio
from selenium import webdriver   #selenium库
from time import sleep
#导入动作链对应的类
from selenium.webdriver import ActionChains
bro = webdriver.Edge("./MicrosoftWebDriver")
#打开登录界面
bro.get("https://qzone.qq.com/")
#因为网页中嵌套了iframe标签,所以需要转换到这个标签
bro.switch_to.frame("login_frame")
sleep(1)
#定位选择登录标签
hhh=bro.find_element_by_id("switcher_plogin")
hhh.click()
sleep(1)
#定位登录账号标签
hh=bro.find_element_by_class_name("inputstyle")
hh.send_keys("账号")
sleep(3)
#定位登录密码标签
h=bro.find_element_by_id("p")
h.send_keys("password")
sleep(2)
#定位登录标签
hhhh=bro.find_element_by_id("login_button")
hhhh.click()
sleep(5)
#睡5秒后关闭
bro.quit()

在这里值得注意的是关于iframe,因为没有系统的学这个东西,我的理解就是通过iframe覆盖原来的HTML的东西,我们需要在iframe上进行操作的时候,需要用代码定位到iframe上bro.switch_to.frame(“id值”)写这个东西也没别的,单纯觉得这个挺好玩的。第一次可以用代码,控制除了编译器以外的其他的软件,感觉挺新鲜的。

发表评论

邮箱地址不会被公开。 必填项已用*标注