主要是正则表达式不熟练,基础知识不扎实,函数也不怎么会用,下次再深入了解这3个函数吧。
主要是一个翻页的功能,其实,就是通过一个url替换一下数字,然后得到一个新的url,再找这个新的链接的信息。
1 #-*-coding:utf8-*- 2 3 import requests 4 import re 5 import sys 6 reload(sys) 7 sys.setdefaultencoding("utf-8") 8 9 class spider(object):10 def __init__(self):11 print "开始爬虫"12 13 def getsource(self,url):14 html = requests.get(url)15 return html.text16 17 def changepage(self,url,total_page):18 now_page = 119 page_group = []20 21 for i in range(now_page,total_page+1):22 link = re.sub('(\d+)','%s'%i,url,re.S)23 page_group.append(link)24 25 return page_group26 27 28 if __name__ =='__main__':29 30 problem = []31 url = 'http://poj.org/problemlist?volume=1'32 33 34 pojspider = spider()35 all_link = pojspider.changepage(url,10)36 37 for link in all_link:38 print link39 htm = pojspider.getsource(link)40 41 problem = re.findall('href=problem?(.*?)',htm,re.S)42 43 for i in problem:44 if i[0]=='?':45 print i46 f = open('info.txt','a')47 f.writelines(i+'\n')48 f.close()