HDU oj 自动交题爬虫

当我还在acm的时候就很想写这个爬虫了

后来学了python  学了点网页请求方式 然后就来写这个爬虫了 

为了记录自己学习的过程写了这一系列博客

首先讲讲我的思路 

第一步当然是登陆  和 cookie处理问题了

使用一个http.cookiejar库  自己创建一个CookieJar对象  把他当参数 构建一个opener对象

安装这个opener为全局对象  这样在我们后面的urlopen过程中都会使用这个opener了 这种方法很好的解决了cookie的问题

def login(self):
		requ = urllib.request.Request(url = self.login_url , data = self.login_data , headers = self.headers)
		cjar = http.cookiejar.CookieJar()#创建一个CookieJar对象
		#使用HTTPCookieProcessor创建一个cookie处理器 并且用它当参数构建opener对象
		opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cjar))
		#把opener安装为全局
		urllib.request.install_opener(opener)
		file = opener.open(requ)
		#with open("test.html" , "wb") as fhandler:
		#	fhandler.write(file.read())

我刚开始是准备在csdn上搜索  hdu + 题号 的方式然后爬csdn自带搜索引擎的结果来交题的

先贴一个我从csdn上爬代码的关键部分代码吧  大概是这样的

#这里直到while都是找到题解地址部分
		#接下来的部分是在csdn上搜索这个问题的解
		urlofquestion = "https://so.csdn.net/so/search/s.do?q=nyoj+%2B+"
		value = ans
		URLENcode = urllib.parse.urlencode({"value" : ans})
		urlofquestion += URLENcode[6:]#因为vlaue= 的长度为6  所以用了这个切片
		urlofquestion += "&t=blog&o=&s=&l="
		#print("我们准备在这个页面搜索题解
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值