爬虫第三弹——利用EditThisCookie获取cookie跳过登陆验证(医脉通)
来源:互联网 发布:淘宝福袋衣服是洋垃圾 编辑:程序博客网 时间:2024/05/22 08:28
爬虫第一弹:利用Scrapy爬取1905电影网
爬虫第二弹:深网爬虫指南,AcFun评论爬取教程
前言
最近有个活,需要将约300个英文医学名词翻译成中文。
经过一番查找发现医脉通的词典还不错,但是必须要登陆后才能使用其词典功能。
这种工作量并不大的任务并不值得我们抓包与模拟登陆,太折腾了!!
我们其实只需要保存登陆成功的cookie,在每次请求时都附上该cookie即可!
这时就可以使用EditThisCookie这个插件了!
Cookie
EditThisCookie是一款可以管理Chrome浏览器中cookies的插件,用户可以利用EditThisCookie添加,删除,编辑,搜索,锁定和屏蔽cookies。
我们手动登陆医脉通后,利用 EditThisCookie 导出 cookie,并将其保存到一个txt文件中
这时cookie已被我们成功获取
下一步将cookie附入我们每次的请求,如下代码所示
cookie_jar = cookielib.MozillaCookieJar()cookies = open('cookie.txt').read()for cookie in json.loads(cookies): cookie_jar.set_cookie(cookielib.Cookie(version=0, name=cookie['name'], value=cookie['value'], port=None, port_specified=False, domain=cookie['domain'], domain_specified=False, domain_initial_dot=False, path=cookie['path'], path_specified=True, secure=cookie['secure'], expires=None, discard=True, comment=None, comment_url=None, rest={'HttpOnly': None}, rfc2109=False))opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie_jar),urllib2.HTTPHandler)urllib2.install_opener(opener)
现在我们已经将cokie放入urllib2包中了,以后每次访问的时候cookielib都会帮我们自动管理cookie,不需要我们操心啦!!
爬虫
其实cookie不用我们管后,爬虫就是很普通的urllib2的爬虫了,没有什么特别的。
代码
# -*- coding: utf-8 -*-import jsonimport urllib2import cookielibfrom pyquery import PyQuery as pqclass YMT(object): def __init__(self): """ 读取从 EditThisCookie 上获取的cookie 并将其绑定到 urllib2 上 以后每次爬虫访问网站时都会自动带上cookie,不再需要人工参与 """ cookie_jar = cookielib.MozillaCookieJar() cookies = open('cookie.txt').read() for cookie in json.loads(cookies): cookie_jar.set_cookie(cookielib.Cookie(version=0, name=cookie['name'], value=cookie['value'], port=None, port_specified=False, domain=cookie['domain'], domain_specified=False, domain_initial_dot=False, path=cookie['path'], path_specified=True, secure=cookie['secure'], expires=None, discard=True, comment=None, comment_url=None, rest={'HttpOnly': None}, rfc2109=False)) opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie_jar),urllib2.HTTPHandler) urllib2.install_opener(opener) def _get(self, url): """ :param url: 需要访问的url :return: 返回该url的网页内容 """ request = urllib2.Request(url=url) request.add_header('Referer', 'http://meddic.medlive.cn/search/search.do') response = urllib2.urlopen(request) data = response.read() return data def get_word_translate(self,word): """ :param word: 需要翻译的英文单词 :return: 如果有对应英文的中文,则返回该中文翻译,否则返回None """ url = 'http://meddic.medlive.cn/search/search.do?word=%s' % word.replace(' ','+') html = self._get(url) # 用 pyquery 定位翻译 q = pq(html) paraphrase_list = q('.paraphrase_list') for paraphrase in paraphrase_list: p = pq(paraphrase) if p('.dictionary').text() == '英汉医学短语词典': return p('.dictionary_message').text() return Noneif __name__ == '__main__': ymt = YMT() word = 'Whipple disease' print ymt.get_word_translate(word)
0 0
- 爬虫第三弹——利用EditThisCookie获取cookie跳过登陆验证(医脉通)
- 爬虫小记:利用cookies跳过登陆验证码
- Python爬虫基础——利用cookie实现模拟登陆
- python利用cookie跳过验证码登录,直接获取二级页面内容
- Python爬虫获取cookie:利用selenium
- selenium(java)通过Cookie跳过登录验证码
- 利用FaceBook实现第三方登陆(自定义登陆按钮,非官方按钮)并获取用户数据
- 爬虫之登陆验证
- 三.获取登陆cookie,并且利用cookie访问登陆后的界面
- 四.python urllib2 ip伪装,cookie登陆获取,利用cookie进行登陆
- 五.python requests ip伪装,cookie登陆获取,利用cookie进行登陆
- Python爬虫(四)——模拟登录imooc实战(利用cookie)
- python利用selenium获取cookie实现免登陆
- 利用selenium登陆智联招聘,获取cookie
- selenium通过cookie跳过登录验证
- 网络爬虫-使用Cookie登陆
- 爬虫记录(3)——模拟登录获取cookie,访问私信页面
- 网络爬虫-验证码登陆
- startservice bindservice的区别
- 七天分金块问题
- Android 简单图片浏览器
- 可扩展标记语言XML(Extensible Markup Language)
- C#全局键盘监听(Hook)的使用
- 爬虫第三弹——利用EditThisCookie获取cookie跳过登陆验证(医脉通)
- 欧拉线性筛求质数
- caffe cnn提取各层特征并可视化结果(Python接口)
- [Contests]2016弱校联盟十一专场10.7
- 工作组和域账户
- Python识别验证码的模块--- pytesser
- 显示和隐藏状态之间切换 slideToggle()
- 管程机制处理进程同步问题
- 运行时常量池