一个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)

原文发布于微信公众号 - Python中文社区(python-china)

原文发表时间:2016-09-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

如何破解12位+字符的高强度密码?

看到这个标题,你肯定抱着怀疑的态度。破解 12+ 字符的密码,在理论上这是不可能的。因为按照安全专家的说法,想要破解一个 12+ 字符的高强度密码,大概需要 1...

3705
来自专栏机器学习实践二三事

Numpy使用1

Numpy介绍 NumPy is the fundamental package for scientific computing with Python. I...

2059
来自专栏zhisheng

Java研发方向如何准备BAT技术面试答案(下)

本文是针对文章《 Java研发方向如何准备BAT技术面试(超级干货)》里面的算法、数据结构、Linux和操作系统问题的一些答案。如有错误,还请各位网友指正。多谢...

1.1K34
来自专栏牛客网

字节跳动面经

只能自己给自己鼓励,不能总是按别人说的去做。有时,你甚至连为什么要这样做都分不清楚,任何的责任都可以让人振奋。但是,荣誉,那才是让你决定做还是不做一件事的原因。...

4681
来自专栏Windows Community

Windows Community Toolkit 3.0 - Gaze Interaction

Gaze Input & Tracking - 也就是视觉输入和跟踪,是一种和鼠标/触摸屏输入非常不一样的交互方式,利用人类眼球的识别和眼球方向角度的跟踪,来判...

1313
来自专栏吉浦迅科技

DAY35:阅读流程控制语句

1524
来自专栏美团技术团队

Android热更新方案Robust

美团•大众点评是中国最大的O2O交易平台,目前已拥有近6亿用户,合作各类商户达432万,订单峰值突破1150万单。美团App是平台主要的入口之一,O2O交易场景...

4269
来自专栏人人都是极客

GPU内存分级

在NVIDIA的GPU中,内存(GPU的内存)被分为了全局内存(Global memory)、本地内存(Local memory)、共享内存(Shared me...

9334
来自专栏FreeBuf

基于时延的盲道研究:受限环境下的内容回传信道

在一次漏洞赏金活动中,挖到个命令注入的洞,我先以时延作为证明向厂商提交该漏洞,厂商以国内网络环境差为由(的确得翻墙)拒收,几次沟通,告知若我能取回指定文件 se...

1385
来自专栏点滴积累

使用 python 处理 nc 数据

7674

扫码关注云+社区

领取腾讯云代金券