Python抓取中文网页

news/2024/7/19 12:19:49 标签: python, 爬虫

早就有想法把博客每天的访问流量记下来,刚好现在申请了GAE的应用,又开始学Python,正好拿这个练手。打算先利用Python把访问记录保存在本地,熟悉之后可以部署到GAE,利用GAE提供的cron就可以每天更近访问流量了。OK,开始~

  首先是简单的网页抓取程序:

  [python] view plaincopy import sys, urllib2

  req = urllib2.Request("http://blog.csdn.net/nevasun")

  fd = urllib2.urlopen(req)

  while True:data = fd.read(1024)

  if not len(data):break sys.stdout.write(data)

  在终端运行提示urllib2.HTTPError: HTTP Error 403: Forbidden,怎么回事呢?

  这是由于网站禁止爬虫,可以在请求加上头信息,伪装成浏览器访问。添加和修改:

  [python] view plaincopy headers = {'User-Agent':'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'} req = urllib2.Request("http://blog.csdn.net/nevasun", headers=headers)

  再试一下,HTTP Error 403没有了,但是中文全都是乱码。又是怎么回事?

  这是由于网站是utf-8编码的,需要转换成本地系统的编码格式:

  [python] view plaincopy import sys, urllib2

  headers = {'User-Agent':'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'} req = urllib2.Request("http://blog.csdn.net/nevasun", headers=headers)

  content = urllib2.urlopen(req)。read()   # UTF-8

  type = sys.getfilesystemencoding()      # local encode format print content.decode("UTF-8")。encode(type)  # convert encode format OK,大功告成,可以抓取中文页面了。下一步就是在GAE上做个简单的应用了~

 

转自:http://linux.chinaitlab.com/Python/878184.html

转载于:https://www.cnblogs.com/heyonggang/archive/2013/01/04/2844710.html


http://www.niftyadmin.cn/n/1319065.html

相关文章

$(document).ready()方法 VS window.onload VS $(window).load()及load事件详解

今天发现一个问题,修改页面时,无法对一个按钮进行条件的显示或隐藏,同事用setTimeout解决了。但我老觉得setTimeout不到万不得已的时候才能用。 经分析,这个要显示或隐藏的按钮是include进来的,于是用window.onload解决…

对话框中设置静态文本框字体及颜色

1、添加对话框类声明中字体和颜色变量 public:CFont m_myFont; // 字体对象COLORREF m_myColor; // 颜色对象 2、在对话框初始化函数OnInitDialog()中对字体和颜色进行初始化 // TODO: 在此添加额外的初始化代码m_myFont.CreatePointFont(150, _T("华文彩云"));m_my…

Angular基础知识系列学习(一)--Angular的介绍以及基本环境搭建

Angular从入门到放弃秘籍 第一篇Angular的介绍以及基本环境搭建 第二篇Angular模板语法、插值语法、事件绑定 第三篇Angular内置基本指令介绍 第四篇Angular组件的创建、组件声明周期钩子函数 第五篇Angular父子组件传值,父传子,子传父,…

JUC 源码学习 CountDownLatch 源码学习

JUC 源码学习 CountDownLatch 源码学习 1.CountDownLatch 构造方法 ountDownLatch countDownLatch new CountDownLatch(n);public CountDownLatch(int count) {//如果构造参数少于0&#xff0c;抛出异常if (count < 0) throw new IllegalArgumentException("count …

JQuery对象的val()方法执行结果分析

JavaScript中&#xff0c;如果id对应的标签不存在&#xff08;同理JAVA中&#xff0c;如果对象不存在&#xff09;&#xff0c;则调用它的方法会报错或抛异常。在实际开发中&#xff0c;发现JQuery在id对应的标签不存在时&#xff0c;调其val()方法不会报错&#xff0c;结果是u…

Vue 项目 echarts中国地图、柱状图、折线图、大数据监控平台实现

Vue 项目echarts中国地图、柱状图、折线图、大数据监控平台实现 点击下载源代码

Vue项目使用FormData导入文件解析以及实例

项目场景&#xff1a; 最近项目开发过程中遇见一个前端导入excel的需求&#xff0c;之前做的都是导出&#xff0c;突然来了一个导入&#xff0c;一时还把我唬住了&#xff0c;不过这点需求是难不倒聪明的我&#xff0c;今天不忙就给大家分享出来&#xff0c;希望大家受用。。 …

oracle 11g 客户端 连接数据库

安装oracle高版本的数据库后&#xff0c;在使用vs2005的oracleClient会提示只支持8.0什么的&#xff0c;oracle官方提供了一个Oracle.DataAccess.dll去做数据的操作&#xff0c;11g的客户端安装后在product\11.2.0\client_2\ODP.NET\bin\2.x文件夹下。转载于:https://www.cnblo…