python 爬虫(三)
2016-01-15 22:34
537 查看
爬虫学了两天,没什么页面好爬,就去搞hdoj。突然发现一个现象,就是对应题目的下面会有一个recommand的标签,如果不登录就不会显示,之后了解到必须要用模拟登录的机制来保存cookie去登录hdoj的系统才能可以。
要使用post方法,点击hdoj的页面。开启网页的网络监视器功能,然后登录hdoj登录,在网络监视器中找到变化的那个条目,也就是找到hdoj登录页面的真实网页。可知真实的页面是这个:
‘http://acm.hdu.edu.cn/userloginex.php?action=login&cid=0¬ice=0’
接下来就是获取你的账号登录的cookie的值,存储在cookie.txt的文本中。
获取cookie:
这样就能获得你的登录信息的cookie值。
参考和学习的博客
要使用post方法,点击hdoj的页面。开启网页的网络监视器功能,然后登录hdoj登录,在网络监视器中找到变化的那个条目,也就是找到hdoj登录页面的真实网页。可知真实的页面是这个:
‘http://acm.hdu.edu.cn/userloginex.php?action=login&cid=0¬ice=0’
接下来就是获取你的账号登录的cookie的值,存储在cookie.txt的文本中。
filename = 'cookie.txt' #存储cookie cookie=None #保存函数获取的cookie user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)' headers = {'User-Agent' : user_agent}#头部 postdata = urllib.urlencode({ #post的数据 'username':'461807914', 'userpass':'********' })
获取cookie:
def getCookies(): #simulate log and catch the cookie logUrl = 'http://acm.hdu.edu.cn/userloginex.php?action=login&cid=0¬ice=0' cookie = cookielib.MozillaCookieJar(filename) opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie)) request = urllib2.Request(#在request中加入url,信息和头部 url = logUrl, data = postdata, headers=headers ) result = opener.open(request) cookie.save(ignore_discard=True, ignore_expires=True) #保存cookie return opener
这样就能获得你的登录信息的cookie值。
content = opener.open(request).read()#直接用上面返回的那个opener就能爬下来网页了。
参考和学习的博客
相关文章推荐
- 【学神-RHEL7】P7-Python中函数的使用
- Python文件
- python--datetime,timedelta时间处理
- python学习第十课续 :线程池
- 《笨办法学Python》 第13课手记
- python 第十天
- python list循环语句的使用方法
- Python 文件读取与写入操作方法
- Python中函数的参数传递方式
- Python学习(三): 字符串操作
- python join字符连接函数的使用方法
- python的MySqldb使用
- python day11
- Python多线程学习
- Python MySQL API
- Python中pprint只有在足够长度的内容下才出效果
- python Eclipse开发环境搭建
- python之self
- python中的时间函数编写
- 第一次写python爬虫