Practice 1_使用selenium基本用法实现对大学排名等数据爬取

本文介绍了如何运用Selenium的webdriver模块进行浏览器模拟,登录并爬取需要登录才能查看的大学排名数据。通过定位元素、提取信息并存储到文件,实现了数据抓取和存储。后续计划扩展爬虫功能以抓取多页数据,并学习更多Python与爬虫相关知识,如正则表达式和数据处理方法。
摘要由CSDN通过智能技术生成

在学习网络爬虫的过程中,通过在mooc上北理嵩天老师的爬虫教学课和平时的自学完成最基础的对无需登录的大学排名网站爬取数据,mooc上老师使用的是bs4库中的BeautifulSoup库以及正则表达式实现对大学排名的爬取。本文中通过selenium中的webdriver实现模拟浏览器的登录和爬取需要的数据,并存储和读取爬取的数据

完整代码如下:

from selenium import webdriver

options=webdriver.ChromeOptions()
options.add_argument('--start-maximized')

'''驱动模拟浏览器并达到指定网页'''
driver = webdriver.Chrome("E:\chromedriver.exe")
driver.get('https://www.shanghairanking.cn/rankings/bcur/2021')

'''使用xpath定位抓取数据'''
names_tags=driver.find_elements_by_xpath("//a[@class='name-cn']")#通过标签名与属性查找
#由于位置与分数用上述方式找不到,通过xpath查找兄弟节点标签的功能查找
locations_tags=driver.find_elements_by_xpath("//td[@class='align-left']/following-sibling::td[1]")
scoles_tags=driver.find_elements_by_xpath("//td[@class='align-left']/following-sibling::td[3]")
info_list=[]
i=0
while i<len(names_tags):
	info_list.append([names_tags[i].get_attribute('textContent').strip(),locations_tags[i].get_attribute('textContent').strip(),scoles_tags[i].get_attribute('textContent').strip()])
	print(info_list[i])#打印输出爬取的数据
	i=i+1
driver.quit()

'''存储数据'''
path='E:/python学习文件/py_爬虫/projects/infor_of_unives.txt'
with open(path,'a') as f:
	for univer in info_list:
		f.write(str(univer)+'\n')
f.close()

'''读取数据'''
with open(path,'r') as f:
	print(f.read())

爬取数据展示(我这里使用列表形式存储):

由于这个大学排名网页在翻页时url链接不会发生改变,后续想着改进的地方:

#实现抓取多页数据 

后续也会继续学习python和爬虫这一块,先熟悉selenium的更多用法,正在做对需要登录的淘宝数据抓取和数据可视化处理,再学一学re库、数据处理常用的方法。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值