农大图书馆-新闻公告反爬虫
2017-05-31 15:29
162 查看
1、地址:http://lib.henau.edu.cn/Default/go?sortID=109
反爬虫的机制,通过cookie值。第1次请求该地址,会检查cookie,如果没有相应的cookie会先通过js设置cookie值。再重新请求该页面。这是第1次请求该页面返回的文档,我们可以看到js设置cookie的代码,
document|href|location|cookie|ant_stream_58b3fe214a7d4|path|3252469838|1496243372
<html> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> <title>lib.henau.edu.cn</title> </head> <body onload="t3_ar_guard();"> <script> function t3_ar_guard() { eval(function(p, a, c, k, e, d) { e = function(c) { return c }; if (!''.replace(/^/, String)) { while (c--) { d[c] = k[c] || c } k = [function(e) { return d[e] }]; e = function() { return '\\w+' }; c = 1 }; while (c--) { if (k[c]) { p = p.replace(new RegExp('\\b' + e(c) + '\\b', 'g'), k[c]) } } return p }('0.3="4=7/6;5=/";0.2.1=0.2.1;', 8, 8, 'document|href|location|cookie|ant_stream_58b3fe214a7d4|path|3252469838|1496243372'.split('|'), 0, {})) } </script> <a href="/stream_58b3fe214a7d4_59295e01c335c?id=2" style="display:none"></a><a href="/stream_58b3fe214a7d4/admin/" style="display:none">admin</a><a href="/stream_58b3fe214a7d4/wp-admin/" style="display:none">wp-admin</a><a href="/stream_58b3fe214a7d4/backend/" style="display:none">backend</a></body> </html>
2、再次请求页面
发送cookie值:ant_stream_58b3fe214a7d4=1496243372/32524698383、对应的python部分代码
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.25 Safari/537.36'} opener = urllib2.build_opener() # 请求第一次 获取cookie中的script request = urllib2.Request(url, headers=headers) html = opener.open(request) soup = bs4.BeautifulSoup(html, 'html.parser') scriptCookie = str(soup.find('script')) start = scriptCookie.index('cookie') end = scriptCookie.index("'.split(") strs = scriptCookie[start:end].split('|') opener.addheaders.append( ('Cookie', '%s=%s/%s' % (strs[1], strs[4], strs[3]))) html = opener.open(request)
相关文章推荐
- 第六课 Python新浪新闻爬虫最终整理总结
- Python爬虫:获取新浪网新闻
- python 爬虫爬取所有上市公司公告信息(一)
- jQuery实现公告新闻自动滚屏效果实例代码
- 在IDLE 中用python 写新闻爬虫
- javascript实现的多条新闻公告系统
- 新闻或公告实现定时滚动的方法
- 基于WebCollector的java爬虫(一)爬取滨州学院官网新闻
- Java广度优先爬虫示例(抓取复旦新闻信息)
- python网络爬虫实战3——抓取新闻内文相关信息
- python3+urllib撸新浪滚动新闻爬虫
- 桂电在线_微信公众平台开发之-运用angularjs显示学校公告新闻列表和详情页面
- 使用 Jsoup 爬虫解析 html 新闻的实例
- python 爬虫爬取所有上市公司公告信息(二)
- java爬虫入门--用jsoup爬取汽车之家的新闻
- R爬虫新闻文章
- Nutch2.3.1 新闻分类爬虫
- 北京新闻爬虫-final
- python爬虫由浅入深13--scrapy基础实战·爬取哈理工教务在线公告
- 使用Scrapy对新闻进行爬虫(一)