2018-03-19 杭电所有课程爬取的代码 python

欢迎光临我的博客 blog.ckj123.com

一天毛钊岚=。=想让我把杭电所有的课程爬下来,于是经过一天的构思和一天的查资料还是完成了=。=嘻嘻嘻嘻

正在爬取=。=

我所使用的是selenium和re 模块就够了=。=

因为在爬取的时候我发现并不能用request,杭电官网的加载是用JavaScript来做请求的,发现request并不能一键爬取于是上网查找了selemium的资料写出来了=。=

下面是代码=。=,还有就是chromedriver一定要和Chrome的版本对应不然是不能实现的



import re

from seleniumimport webdriver

import time,os

url='http://jxgl.hdu.edu.cn/jxrwcx.aspx'

file=open('kechengmingchen.txt','w')

def openwindow():

driver = webdriver.Chrome(executable_path='C:\\Users\\assu\\PycharmProjects\\CTF\\学校课程\\chromedriver.exe')

# driver.maximize_window()

    driver.get(url)

for iin range(1,50000):

yemian,yeshu=tiqu(driver.page_source)

print("第{}页".format(yeshu[0]))

# print(len(yemian),yemian,sep='\n')

        for jin range(1,len(yemian)):

file.write(yemian[j][1]+'\n')

time.sleep(1)

if i <11:

xpath='//*[@id="DBGrid"]/tbody/tr[16]/td/a[{}]'.format(i)

else:

if i%10==0:

xpath ='//*[@id="DBGrid"]/tbody/tr[16]/td/a[{}]'.format(11)

else:

xpath ='//*[@id="DBGrid"]/tbody/tr[16]/td/a[{}]'.format(i%10+1)

try:

select=driver.find_element_by_xpath(xpath=xpath)

print("要按的页数"+select.text)

select.click()

except:

if yeshu==i+1:

continue

            print("最后一页为第{}页".format(yeshu[0]))

break

def tiqu(text):

regax='(.*?)(.*?)(.*?)(.*?)(.*?)(.*?)(.*?)(.*?)(.*?)'

    all_re=re.findall(regax,text)

reg='(.*?)'

    arr_1=re.findall(reg,text)

return all_re,arr_1

openwindow()

file.close()



全部44行=。=还是挺简单的呢

结果是这样的=。=


后来跟o爷爷聊了一下杭电的所有课程爬取

他也给了我一份代码,他没有用selenium比我的快很多。我放到发现不行。。所以放我blog了

http://www.ckj123.xin/2018/03/19/2018-03-19-%E6%9D%AD%E7%94%B5%E6%89%80%E6%9C%89%E8%AF%BE%E7%A8%8B%E7%88%AC%E5%8F%96%E7%9A%84%E4%BB%A3%E7%A0%81-python/

你可能感兴趣的:(2018-03-19 杭电所有课程爬取的代码 python)