主要是正则表达式不熟练,基础知识不扎实,函数也不怎么会用,下次再深入了解这3个函数吧。

主要是一个翻页的功能,其实,就是通过一个url替换一下数字,然后得到一个新的url,再找这个新的链接的信息。

python 爬poj.org的题目

 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.text
16 
17     def changepage(self,url,total_page):
18         now_page = 1
19         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_group
26 
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 link
39         htm = pojspider.getsource(link)
40 
41         problem = re.findall('href=problem?(.*?)</a>',htm,re.S)
42 
43         for i in problem:
44             if i[0]=='?':
45                 print i
46                 f = open('info.txt','a')
47                 f.writelines(i+'\n')
48                 f.close()

 

相关文章:

  • 2022-12-23
  • 2021-04-26
  • 2021-05-15
  • 2021-11-18
  • 2021-12-21
  • 2022-12-23
  • 2021-06-24
  • 2021-09-15
猜你喜欢
  • 2022-12-23
  • 2021-10-26
  • 2021-10-12
  • 2022-01-23
  • 2021-07-07
  • 2021-08-05
相关资源
相似解决方案