Python 爬虫学习 urllib
- 网页抓取
# -*-coding: utf-8 -*- import urllib url = "http://www.cndzz.com/" html = urllib.urlopen(url) print html.read()
对于网页编码为gb2312等格式的网页,使用如下方法
# -*-coding: utf-8 -*- import urllib url = "http://www.sina.com.cn/" html = urllib.urlopen(url) print html.read().decode("gbk").encode("utf-8")如果有多种编码,可以使用如下方法
# -*-coding: utf-8 -*-
# Author:Evilxr import urllib url = "http://www.sina.com.cn/" html = urllib.urlopen(url) print html.read().decode("gbk", "ignore").encode("utf-8") - 获取Web服务器头部信息
# -*-coding: utf-8 -*-
# Author:Evilxr import urllib url = "http://www.sina.com.cn/" html = urllib.urlopen(url) print html.info()返回信息:
Server: nginx
Date: Otc, 10 Nov 2014 12:54:50 GMT
Content-Type: text/html
Last-Modified: Otc, 10 Nov 2014 12:54:11 GMT
Vary: Accept-Encoding
Expires: Otc, 10 Nov 2014 12:55:50 GMT
Cache-Control: max-age=60
X-Powered-By: schi_v1.03
Age: 27
Content-Length: 563513
X-Cache: HIT from cd31-151.sina.com.cn
Connection: close [Finished in 0.2s] - 获取网页状态码
# -*-coding: utf-8 -*-
# Author:Evilxr import urllib url = "http://www.sina.com.cn/" html = urllib.urlopen(url) # 200正常访问 301重定向 403 禁止访问 404页面不存在 500 服务器忙或者服务器无响应
print html.getcode() # 获取用户传入的url
print html.geturl() # 关闭文件
html.close - 保存网页内容
# -*-coding: utf-8 -*-
# Author:Evilxr import urllib url = "http://www.cdnzz.com/" urllib.urlretrieve(url, "d:\\evilxr.html") - 获取网站编码类型
# coding:utf8
# Author:Evilxr import urllib url = "http://www.163.com" html = urllib.urlopen(url) print html.info().getparam('charset')
html.close()返回:
GBK
[Finished in 0.6s]# coding:utf8
# Author:Evilxr import urllib url = "http://www.cnblogs.com/Evilxr" html = urllib.urlopen(url) print html.info().getparam('charset')
html.close()返回:
utf-8
[Finished in 0.3s] - 自动获取网站编码 chardet[字符集检测]
#先安装chardet
#pip install chardet# coding:utf8 import urllib
import chardet def automatic_detect(url):
"""" doc """
content = urllib.urlopen(url).read()
result= chardet.detect(content)
encoding = result['encoding']
return encoding url_list = ["http://www.sina.com.cn/",
"http://www.cnblogs.com/evilxr",
"http://bbs.hackav.com/",
"http://www.baidu.com/",
"http://fuli.ba/"]
for url in url_list:
print url, automatic_detect(url)http://www.sina.com.cn/ GB2312
http://www.cnblogs.com/evilxr utf-8
http://bbs.hackav.com/ GB2312
http://www.baidu.com/ utf-8
http://fuli.ba/ utf-8
[Finished in 17.1s]
Python 爬虫学习 urllib的更多相关文章
- python爬虫学习(1) —— 从urllib说起
0. 前言 如果你从来没有接触过爬虫,刚开始的时候可能会有些许吃力 因为我不会从头到尾把所有知识点都说一遍,很多文章主要是记录我自己写的一些爬虫 所以建议先学习一下cuiqingcai大神的 Pyth ...
- python爬虫学习 —— 总目录
开篇 作为一个C党,接触python之后学习了爬虫. 和AC算法题的快感类似,从网络上爬取各种数据也很有意思. 准备写一系列文章,整理一下学习历程,也给后来者提供一点便利. 我是目录 听说你叫爬虫 - ...
- Python爬虫学习:三、爬虫的基本操作流程
本文是博主原创随笔,转载时请注明出处Maple2cat|Python爬虫学习:三.爬虫的基本操作与流程 一般我们使用Python爬虫都是希望实现一套完整的功能,如下: 1.爬虫目标数据.信息: 2.将 ...
- 《Python爬虫学习系列教程》学习笔记
http://cuiqingcai.com/1052.html 大家好哈,我呢最近在学习Python爬虫,感觉非常有意思,真的让生活可以方便很多.学习过程中我把一些学习的笔记总结下来,还记录了一些自己 ...
- Python爬虫之urllib模块2
Python爬虫之urllib模块2 本文来自网友投稿 作者:PG-55,一个待毕业待就业的二流大学生. 看了一下上一节的反馈,有些同学认为这个没什么意义,也有的同学觉得太简单,关于Beautiful ...
- python爬虫学习笔记(一)——环境配置(windows系统)
在进行python爬虫学习前,需要进行如下准备工作: python3+pip官方配置 1.Anaconda(推荐,包括python和相关库) [推荐地址:清华镜像] https://mirrors ...
- [转]《Python爬虫学习系列教程》
<Python爬虫学习系列教程>学习笔记 http://cuiqingcai.com/1052.html 大家好哈,我呢最近在学习Python爬虫,感觉非常有意思,真的让生活可以方便很多. ...
- Python爬虫学习第一记 (翻译小助手)
1 # Python爬虫学习第一记 8.24 (代码有点小,请放大看吧) 2 3 #实现有道翻译,模块一: $fanyi.py 4 5 import urllib.request 6 import u ...
- Python爬虫学习:四、headers和data的获取
之前在学习爬虫时,偶尔会遇到一些问题是有些网站需要登录后才能爬取内容,有的网站会识别是否是由浏览器发出的请求. 一.headers的获取 就以博客园的首页为例:http://www.cnblogs.c ...
随机推荐
- 《BI项目笔记》历年的初烟水分均值变化分析Cube的建立
主要维度: 班组班次检测项质检日期(时间维度)加工客户加工类型收购类型生产线产地烟叶级别 主要指标:慢速测定_平均值快速测定_平均值红外测定_平均值ETL设计 需要抽取的维度表: 序号 表名 说明 备 ...
- 百度地图 判断marker是否在多边形内
昨天画了圆形,判marker是否存在圆形内.今天来画多边形,判断marker在多边形内. 需要引入一个js <script type="text/javascript&quo ...
- SQL语句中SUM与COUNT的区别
SUM是对符合条件的记录的数值列求和 COUNT 是对查询中符合条件的结果(或记录)的个数 例如: 表fruit id name price 1 apple 3.00 2 ...
- 使用 GPG 对数据进行加密解密签名
一:使用 GPG 对数据进行加密解密签名 基本的工具使用 1. GPG 是GNUPG 免费开源的gpg加密工具,和同pgp兼容,pgp收费. 2. 在mac上使用https://gpgtools.or ...
- Hbase WAL线程模型源码分析
版权声明:本文由熊训德原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/257 来源:腾云阁 https://www.qclo ...
- js根据当前时间获取当前季度,月份,和第几周
function jidu() { var getMonthWeek = function (a, b, c) { var date = new Date(a, parseInt(b) - ...
- 【bzoj1098】办公楼
[bzoj1098]办公楼 题意 FGD开办了一家电话公司.他雇用了N个职员,给了每个职员一部手机.每个职员的手机里都存储有一些同事的电话号码.由于FGD的公司规模不断扩大,旧的办公楼已经显得十分狭窄 ...
- Centos 安装 neo4j
This is experimental and not considered safe for production. You have been warned. Please note that ...
- SPSS数据分析—非线性回归
线性回归的首要满足条件是因变量与自变量之间呈线性关系,之后的拟合算法也是基于此,但是如果碰到因变量与自变量呈非线性关系的话,就需要使用非线性回归进行分析. SPSS中的非线性回归有两个过程可以调用,一 ...
- jquery.uploadify 动态传递参数
最近 项目中使用到 uplaodify 来实现上传文件的功能.在传输动态参数的时候,遇到了问题! 使用官网提供的 settings 方法 官方例子function changeBtnText() { ...