前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一个Pythoner的自我修养系列(一)

一个Pythoner的自我修养系列(一)

作者头像
Python中文社区
发布2018-01-31 12:35:47
1.2K0
发布2018-01-31 12:35:47
举报
文章被收录于专栏:Python中文社区

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-09-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python中文社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一个js动态数据抓取范例
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档