一个Pythoner的自我修养系列(一)
一个Pythoner的自我修养系列是Python中文社区网友的投稿文章,欢迎大家踊跃投稿,文章主要内容为您在工作中、学习中碰到的Python难题、心得、有趣的项目等,您也可以直接扔代码过来由我们后期编辑,文章可署名,可附带自我介绍,可征女友男友、可征婚......文章赞赏所得归作者所有,文章将同步至Python中文社区微信公众号、知乎专栏、简书等各大网络平台
投稿请寄:sinoandywong@gmail.com,大家共同学习,共同进步。本期文章由@黑白授权发布,版权所有,感谢作者分享。
一个js动态数据抓取范例
作者:Python中文社区网友@黑白
- ★抓取站点:球网,一个足球比分统计网站 http://lq3.win007.com/nba_big.htm
- ★抓取球网的比分数据,作为抓取js动态数据的范例
- ★抓取js动态数据的关键是学好审查元素,只有这样才能找对链接
- ★请求头header照抄审查元素里的就可以
- ★抓包有gzip压缩,同样也是很好的解压例子,也可以作为使用cookie的例子
- ★此爬虫脚本还写了一个保存数据到excel的方法
1. 程序环境安装及运行
- ★虚拟环境的安装
$ pip install virtualenv
$ virtualenv ENV2.7
- ★安装numpy、pandas、chardet
$ pip install numpy
$ pip install pandas
$ pip install chardet
- ★安装pyquery
$ sudo apt-get install libxml2-dev libxslt-dev python-dev
$ sudo apt-get install zlib1g-dev
$ pip install pyquery
- ★运行程序
$ python football_spider.py
- 2、主要代码片段
try:
# 创建MozillaCookieJar实例对象
cookie = cookielib.MozillaCookieJar()
# 从文件中读取cookie内容到变量
cookie.load(cookie_name,ignore_discard=True,ignore_expires=True)
print "有cookie"
except:
# 获取cookie用的链接
login_url='http://lq3.win007.com/nba_big.htm'
# 声明一个MozillaCookieJar对象实例来保存cookie,之后写入文件
cookie = cookielib.MozillaCookieJar(cookie_name)
# 利用urllib2库的HTTPCookieProcessor对象来创建cookie处理器
handler = urllib2.HTTPCookieProcessor(cookie)
# 通过handler来构建opener
opener = urllib2.build_opener(handler)
req = urllib2.Request(login_url,headers=hds[random.randint(1, 10)%len(hds)])
# 创建一个请求,原理同urllib2的urlopen
opener.open(req).read()
# 保存cookie到文件
cookie.save(ignore_discard=True,ignore_expires=True)
# 从文件中读取cookie内容到变量 cookie.load(cookie_name,ignore_discard=True,ignore_expires=True)
print "首次生成cookie"
# 创建请求的request
req=urllib2.Request(url,headers=hds[random.randint(1,10)%len(hds)])
# 利用urllib2的build_opener方法创建一个opener
opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
plain_text = opener.open(req).read()
if chardet.detect(plain_text[0:1000])['encoding']=='GB2312':
#如果网页编码是GB2312则转码为GBK,默认为utf-8
plain_text = unicode(plain_text,'GBK')
return gzdecode(plain_text)
- 如何在js中将统计代码图标隐藏
- 警惕IT黑洞
- 这或许是对小白最友好的python入门了吧——17,while循环
- 泛型介绍(接上一篇,具体的事例随后呈上)
- PHP高级编程之守护进程
- 看到他我一下子就悟了-- 泛型(2)
- ExtJS4中设置tabpanel的tab高度问题
- Oracle写错误与文件离线
- 看到他我一下子就悟了-- 泛型(1)
- EXTJS4 Grid Filter 插件的使用 与后台数据解析------Extjs 查询筛选功能的实现
- [Java]读取文件方法大全
- WPF Application 类介绍以及怎样修改启动方式
- C#基础知识回顾-- 反射(4)
- C#基础知识回顾-- 反射(3)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法