Python 通过爬虫实现GitHub网页的模拟登录的示例代码。
示例一:利用requests和beautifulsoup
import requests
from bs4 import BeautifulSoup
# 登录页面url
login_url = "https://github.com/login"
# 浏览器请求头
headers = {
'Referer': 'https://github.com/',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36 Edg/89.0.774.54'
}
# 构建session
session = requests.Session()
# 获取登录页面html
login_page_html = session.get(login_url, headers=headers).text
# 解析登录页面html
soup = BeautifulSoup(login_page_html, "html.parser")
# 获取authenticity_token字段
authenticity_token = soup.find('input', attrs={'name': 'authenticity_token'})['value']
# 登录信息
login_data = {
'commit': 'Sign in',
'utf8': '✓',
'authenticity_token': authenticity_token,
'login': 'xxxxx', # github登录名
'password': 'xxxxx' # github登录密码
}
# 发送登录请求
session.post(login_url, headers=headers, data=login_data)
# 验证是否登录成功
profile_url = "https://github.com/settings/profile"
page_html = session.get(profile_url).text
profile_soup = BeautifulSoup(page_html, "html.parser")
profile_name = profile_soup.find(class_='p-nickname').get_text().strip()
print('登录成功,用户名:' + profile_name)
示例二:利用selenium
from selenium import webdriver
import time
# Github的触发登录URL
login_url = 'https://github.com/login'
# 创建apk浏览器驱动
driver = webdriver.Chrome()
# 打开登录页面
driver.get(login_url)
# 清空用户名输入框并输入用户名
username = driver.find_element_by_xpath('//*[@id="login_field"]')
username.clear()
username.send_keys('xxxxx') # github登录名
# 清空密码输入框并输入密码
password = driver.find_element_by_xpath('//*[@id="password"]')
password.clear()
password.send_keys('xxxxx') # github登录密码
# 点击登录按钮
login_btn = driver.find_element_by_xpath('//*[@id="login"]/form/div[4]/input[12]')
login_btn.click()
# 等待登录成功
time.sleep(5)
# 检验是否登录成功
profile = driver.find_element_by_xpath('//*[@id="user-links"]/li[3]/details/summary/span')
print('登录成功,用户名:' + profile.text)
# 关闭浏览器
driver.close()
以上是两个示例代码,第一个示例使用requests
和beautifulsoup
模块实现模拟登录github网站的过程,主要是通过构建session
对象和访问登录页面获取 authenticity_token
字段, 最终通过发送登录请求实现了登录;
第二个示例使用selenium
模块模拟浏览器访问指定URL,清空和输入用户名和密码,最终实现了登录操作。该方法需要安装Chrome或Firefox等浏览器,并下载相应的浏览器驱动,可以实现JavaScript渲染和动态加载实现的登录,更加适用于网站复杂的登陆操作。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 通过爬虫实现GitHub网页的模拟登录的示例代码 - Python技术站