末世苍雪

root@jtahstu.com   Github  

最新碎语:这个M1 MBP, PHP多版本环境装的我极度崩溃, 历时4个小时终于搞定了. 1. brew转不了7.x的环境, 默认只能装8.1, 恶心. 2. Nginx装上了, 但是请求转发不到php-fpm上, 试了各种配置都不行, 删掉Nginx转战Apache, 吐了. 3. 系统自带httpd, brew能装上httpd但搞死启动不了httpd, 只能手动启动和关闭httpd, 无语. 4. 以上问题都解决后, 加上自己写的启动和关闭脚本, 目前能正常跑起来PHP文件了, 开心! 为啥目前没有开源好用的M1 MNMP环境哇, o(≧口≦)o

您的位置:末世苍雪 >笔记> AC自动机三之抓取南阳OJ所有题目信息

AC自动机三之抓取南阳OJ所有题目信息

和上一篇文章基本雷同

__author__ = 'jtahstu'
import urllib2
import re
import sys
import time
pid=1247
for i in xrange(1,pid):
 url = 'http://acm.nyist.net/JudgeOnline/problem.php?pid='+str(i)
 headers = { 'User-Agent' : 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)' }
 try:
  request = urllib2.Request(url,headers = headers)
  response = urllib2.urlopen(request)
  content = response.read()
  noproblem=re.search('题目尚未公开',content)
  if not noproblem:
   patten=re.compile('.*?class="problem-display".*?</H4>(.*?)<DL class="problem-submit">',re.S)
   proList=re.findall(patten,content)
   csv=open('nyojproblemlist.csv','ab+')
   for res in proList:
    data='"'+str(i)+'","'+res+'"'
    csv.write(data+"\r\n")
    print data
   csv.close()
 except urllib2.URLError, e:
    if hasattr(e,"code"):
        print e.code
    if hasattr(e,"reason"):
        print e.reason
 time.sleep(1)
CREATE TABLE `nyojproblems` (
  `pid` int(11) NOT NULL,
  `content` text CHARACTER SET utf8,
  PRIMARY KEY (`pid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1

csv文件导入时有一百多条出错,成功导入1072条数据

[Finished in 1861.9s]

抓取耗时31分钟,去掉睡眠时间,抓取一千多道题,用时10分钟

---

本文章采用 知识共享署名2.5中国大陆许可协议 进行许可,转载必须注明作者和本文链接。

---

二维码加载中...

扫一扫移动端访问O(∩_∩)O

发表评论

56 + 12 =
路人甲 表情
看不清楚?点图切换 Ctrl+Enter快速提交
正在加载中……