一、前言
目前考研分数出炉,有人欢喜有人悲。成绩不理想的同学只能大量搜索调剂信息,而各大高校研究生院会将调剂信息以及预调剂信息发放在官网上,将各大高校研究生院网址汇总也算为广大考研学子尽一份力。
二、selenium简介
1、简介
selenium本质是通过驱动浏览器,完全模拟浏览器的操作,比如跳转、输入、点击、下拉等,来拿到网页渲染之后的结果,可支持多种浏览器。
2、下载selenium和google driver
selenium可以通过pip install selenium安装
这里的关键点也是很容易失败的一点就是要保证 chromewebdriver与谷歌浏览器版本的一致性 ,大家可以参照这个网址 https://blog.csdn.net/ping523/article/details/54963477 来查看与谷歌浏览器的版本想对应的webdriver,这里要尤为注意
2、下载完成后解压,将chromewebdriver 放在与谷歌浏览器快捷方式相同目录下
![9d5b5b63bc912f31e14eaab33e37f3b9.png](https://i-blog.csdnimg.cn/blog_migrate/b159958d0326479eb84584dfc0572bf8.jpeg)
三、代码
import requests
from bs4 import BeautifulSoup
from selenium import webdriver
import time
import pandas as pd
def get_content():
url="http://daxue.eol.cn/211.shtml"
headers={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.116 Safari/537.36'}
re=requests.get(url,headers=headers)
print(re.status_code)
return re.content
def get_name(content):
soup=BeautifulSoup(content,'lxml')
table=soup.find("table")
td=table.find_all("td")
a=[]
for each in td:
a.append(each.a)
a=list(filter(None,a))
name=[]
for each in a:
if(each.text!='2018年各省录取分数线'):
name.append(each.text)
return name
def get_url(names):
"""
names为各个高校的名称
"""
chromedriver = r"C:Program Files (x86)GoogleChromeApplicationchromedriver.exe" #这里是你的驱动的绝对地址
browser = webdriver.Chrome(chromedriver) #驱动器
browser.get(url='https://www.baidu.com') #获取网页
time.sleep(2)
url=[]
#获取搜索框
input = browser.find_element_by_css_selector('input#kw') #value为ID选择器
#对列表中每一个大学,获得研究生院url
for name in names:
submit = input.send_keys(name)
time.sleep(2)
#点击提交按钮
button = browser.find_element_by_css_selector('input#su')
button.click()
time.sleep(10)
result=browser.find_element_by_css_selector('h3 > a') #获得第一个搜索结果
href=result.get_attribute('href') #获得元素
url.append(href)
input.clear()
browser.close()
return url
con=get_content()
name=get_name(con)
name_yz=[]
for each in name:
name_yz.append(each+'研究生院')
url=get_url(name_yz)
data=pd.DataFrame({
'name':name,'url':url})
data.to_csv('各大高校研究生院网址.csv',encoding='utf_8_sig')
![f29e143b5ff473fda1e6ca26f8e8ec98.png](https://i-blog.csdnimg.cn/blog_migrate/a50b63055a9a1e402ee1b4f7d0faa777.jpeg)
四、爬取信息如下:
0
清华大学
http://www.baidu.com/link?url=o5VlyHIqlLdD58EaLWsB1JYYpK6QkYyy9pMUZOmD3hhdZ0t5woHE-Dx1CwQejx8_
1
北京大学
http://www.baidu.com/link?url=_3vI5SePcgS3yJAF5FEpvYAKXgFN2AvBdHi0H5Smco4QT8Vb9Hf0-86MMaXFi-5r
2
中国人民大学
http://www.baidu.com/link?url=LH1PIbTU1hvGBJ_ZptOBfQt7l7vLSd1xHrO0oVMAJeC
3
北京交通大学
http://www.baidu.com/link?url=xJLgwNvYVPBL-FKi4c4MgRNxmYVHobuqMpnqVlXwjtau7XSUPlAF1RqlK3HzDmEY
4
北京工业大学
http://www.baidu.com/link?url=kbFNP9eHWRVvfqjH9n_SI3PQLua2TKnkrgpq0OleKQNivY3awF8R4wz19Lap2RcE
5
北京航空航天大学
http://www.baidu.com/link?url=gwO5g9UO0E0r4Mwf6Y0qX1KjpmcTwiAkiQ1L2PsCsgFzWaJVI6EgLJGj5JPFXWwC
6
北京理工大学
http://www.baidu.com/link?url