基于python的爬虫(一)
抓取网页
python核心库
urllib2
实现对静态网页的抓取,不得不说,“人生苦短,我用python”这句话还是有道理的,要是用java来写,这估计得20行代码
(对不住了博客园了,就拿你开刀吧)
def staticFetch():
url = "http://www.cnblogs.com/"
request = urllib2.Request(url)
response = urllib2.urlopen(request)
print response.read()
实现对动态网页的抓取,采用post请求,如果想用get方法,只需要把参数接在url后面,不需要data这个参数
def postFetch():
data = 'Keywords:爬虫'
url = "http://zzk.cnblogs.com/s/blogpost?Keywords=%E7%88%AC%E8%99%AB"
request = urllib2.Request(url, data)
response = urllib2.urlopen(request)
print response.read()
匹配数据
|
正则表达式 |
解释 |
案例(伪代码) |
|
.* |
贪婪模式,匹配除了换行符之外的所有字符 |
str = abcbc regex = a.*c return abcbc |
|
.*? |
非贪婪模式 |
str = abcbc regex = a.*c return abc |
|
(.*?) |
表示只要匹配这一部分 如果是匹配多个则返回的是一个元组类型 |
str = abcbc regex = a(.*)c return b |
|
more |
伪造浏览器请求
urllib2.HTTPError: HTTP Error 403: Forbidden
当你在运行python的时候出现这个错误,则该网址设置过了禁止爬虫访问,需要伪装一下http的请求头,加入如下代码再运行就ok了。
head={'User-Agent':'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'}
urllib2.Request(url,headers=head)
网页乱码问题
看看爬下来的html是什么编码格式的

一般都是utf-8,也有gb2312和asic的,保证你的编码和网页的编码是同一种编码。
中文乱码
如果爬下来的网页打印的时候出现\xe6\x96\xb0\xe4\xba\xba这种信息,你可以用以下语句转换成字符串查看
','.join(str)
参考资料
//一个python爬虫从入门到放弃的好博客
http://cuiqingcai.com/1052.html
基于python的爬虫(一)的更多相关文章
- 基于python的爬虫项目
一.项目简介 1.1 项目博客地址 https://www.cnblogs.com/xsfa/p/12083913.html 1.2 项目完成的功能与特色 爬虫和拥有三个可视化数据分析 1.3 项目采 ...
- 基于python的爬虫流程图(精简版)
网址: https://www.processon.com/view/link/5e1148b8e4b07db4cfa9cf34 如果链接失效,请及时反馈(在评论区评论),博主会及时更新
- 一篇文章教会你利用Python网络爬虫获取电影天堂视频下载链接
[一.项目背景] 相信大家都有一种头疼的体验,要下载电影特别费劲,对吧?要一部一部的下载,而且不能直观的知道最近电影更新的状态. 今天小编以电影天堂为例,带大家更直观的去看自己喜欢的电影,并且下载下来 ...
- 基于python的知乎开源爬虫 zhihu_oauth使用介绍
今天在无意之中发现了一个知乎的开源爬虫,是基于Python的,名字叫zhihu_oauth,看了一下在github上面star数还挺多的,貌似文档也挺详细的,于是就稍微研究了一下.发现果然很好用啊.就 ...
- 基于Scrapy框架的Python新闻爬虫
概述 该项目是基于Scrapy框架的Python新闻爬虫,能够爬取网易,搜狐,凤凰和澎湃网站上的新闻,将标题,内容,评论,时间等内容整理并保存到本地 详细 代码下载:http://www.demoda ...
- 基于python的知乎开源爬虫 zhihu
今天在无意之中发现了一个知乎的开源爬虫,是基于Python的,名字叫zhihu_oauth,看了一下在github上面star数还挺多的,貌似文档也挺详细的,于是就稍微研究了一下.发现果然很好用啊.就 ...
- Python分布式爬虫打造搜索引擎完整版-基于Scrapy、Redis、elasticsearch和django打造一个完整的搜索引擎网站
Python分布式爬虫打造搜索引擎 基于Scrapy.Redis.elasticsearch和django打造一个完整的搜索引擎网站 https://github.com/mtianyan/Artic ...
- 基于python爬虫的github-exploitdb漏洞库监控与下载
基于python爬虫的github-exploitdb漏洞库监控与下载 offensive.py(爬取项目历史更新内容) #!/usr/bin/env python # -*- coding:utf- ...
- 基于python的pixiv爬虫
基于python的pixiv爬虫 1.目标 在和朋友吹逼过程中,聊到qq群机器人,突发奇想动手做一个p站每日推荐色图的色图机,遂学习爬虫. 目标: 批量下载首页推荐色图. 由于对qq机器人不熟,先利用 ...
随机推荐
- js对象个人理解及记录
什么是对象 对象的定义是:无序属性的集合,其属性可以包括基本值.对象或函数. var car = {}; //比如我们拿一块铁造了一辆车,这的名字叫car /建一个空对象 car.length = ...
- WebService基础学习(三)—CXF
一.什么是CXF? Apache CXF = Celtix + Xfire,开始叫 Apache CeltiXfire,后来更名为 Apache CXF 了,以下简称为 CXF.Apache ...
- Jquery Validation 验证控件的使用说明
转载自:http://blog.csdn.net/huang100qi/article/details/52453970,做了一些简化及修改 下载地址:https://jqueryvalidation ...
- 深入tornado中的IOStream
IOStream对tornado的高效起了很大的作用,他封装了socket的非阻塞IO的读写操作.大体上可以这么说,当连接建立后,服务端与客户端的请求响应都是基于IOStream的,也就是说:IOSt ...
- SIP DB33标准笔记 注册/目录发送/心跳
SIP协议扩展中: 在 RFC 3261 基础上定义了一个新方法 DO.方法 DO 的功能包括:控制对方动作.更新对方信息.查询对方状态.历史监控资料查询和回放等.发送方法 DO 的请求报文时,不会创 ...
- php 启动过程 - sapi MINIT 过程
php 启动过程 - sapi MINIT 过程 sapi 概念 sapi 是 php 的应用编程接口, server 端接收请求通过 sapi 接口层交给 php 处理 不同的 server 端底层 ...
- [编织消息框架][网络IO模型]aio
asynchronous I/O (the POSIX aio_functions)—————异步IO模型最大的特点是 完成后发回通知. [编织消息框架][网络IO模型]NIO(select and ...
- JAVA压缩图片 服务器端压缩图片 原创
@RequestMapping(value = "/uploadImage", method = RequestMethod.POST) @ResponseBody public ...
- OpenCV 玩九宫格数独(二):knn 数字识别
欢迎大家关注腾讯云技术社区-博客园官方主页,我们将持续在博客园为大家推荐技术精品文章哦~ 作者:刘潇龙 前言 首先需要说明,这里所说的数字识别不是手写数字识别! 但凡对机器学习有所了解的人,相信看到数 ...
- Virtualbox mac版centos7.2 安装共享文件夹
因为用的是mac本,在自己电脑上用virtualbox安装了centos7.2 虚拟机,为了实现与本机交换文件,需要用到贡享文件夹功能. 网上搜的时候多是windows版的,所以自己写一个mac版的. ...