python爬虫基本知识


Posted in Python onMarch 05, 2018

爬虫简介

      根据百度百科定义:网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。     

随着大数据的不断发展,爬虫这个技术慢慢走入人们的视野,可以说爬虫是大数据应运而生的产物,至少我解除了大数据才了解到爬虫这一技术

随着数据的海量增长,我们需要在互联网上选取所需要的数据进行自己研究的分析和实验。这就用到了爬虫这一技术,下面就跟着小编一起初遇python爬虫!

一、请求-响应

在利用python语言实现爬虫时,主要用到了urllib和urllib2两个库。首先用一段代码说明如下:

import urllib
 import urllib2
 url="http://www.baidu.com"
 request=urllib2.Request(url)
 response=urllib2.urlopen(request)
 print response.read()

我们知道一个网页就是以html为骨架,js为肌肉,css为衣服所构成的。上述代码所实现的功能就是把百度网页的源码爬取到本地。

其中,url为要爬取的网页的网址;request发出请求,response是接受请求后给出的响应。最后用read()函数输出的就是百度网页的源码。

二、GET-POST

两者都是向网页传递数据,最重要的区别是GET方式是直接以链接形式访问,链接中包含了所有的参数,当然如果包含了密码的话是一种不安全的选择,不过你可以直观地看到自己提交了什么内容。

POST则不会在网址上显示所有的参数,不过如果你想直接查看提交了什么就不太方便了,大家可以酌情选择。

POST方式:

import urllib
 import urllib2
 values={'username':'2680559065@qq.com','Password':'XXXX'}
 data=urllib.urlencode(values)
 url='https://passport.csdn.net/account/login?from=http://my.csdn.net/my/mycsdn'
 request=urllib2.Request(url,data)
 response=urllib2.urlopen(request)
 print response.read()

GET方式:

import urllib
import urllib2
values={'username':'2680559065@qq.com','Password':'XXXX'}
data=urllib.urlencode(values)
url = "http://passport.csdn.net/account/login"
geturl = url + "?"+data
request=urllib2.Request(geturl)
response=urllib2.urlopen(request)
print response.read()

三、异常处理

处理异常时,用到了try-except语句。

import urllib2
 try:
   response=urllib2.urlopen("http://www.xxx.com")
 except urllib2.URLError,e:
   print e.reason

总结

以上所述是小编给大家介绍的python爬虫基本知识,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Python ORM框架SQLAlchemy学习笔记之关系映射实例
Jun 10 Python
python使用Image处理图片常用技巧分析
Jun 01 Python
解决pandas 作图无法显示中文的问题
May 24 Python
对tensorflow 的模型保存和调用实例讲解
Jul 28 Python
pycharm中成功运行图片的配置教程
Oct 28 Python
Django2.1.3 中间件使用详解
Nov 26 Python
python如何制作缩略图
Apr 30 Python
Flask和pyecharts实现动态数据可视化
Feb 26 Python
总结Pyinstaller的坑及终极解决方法(小结)
Sep 21 Python
Docker如何部署Python项目的实现详解
Oct 26 Python
详解Python中的GIL(全局解释器锁)详解及解决GIL的几种方案
Jan 29 Python
详解Python常用的魔法方法
Jun 03 Python
用tensorflow构建线性回归模型的示例代码
Mar 05 #Python
详解python实现线程安全的单例模式
Mar 05 #Python
分析python动态规划的递归、非递归实现
Mar 04 #Python
python3.x上post发送json数据
Mar 04 #Python
python数据封装json格式数据
Mar 04 #Python
Python爬虫实例扒取2345天气预报
Mar 04 #Python
Python爬虫设置代理IP的方法(爬虫技巧)
Mar 04 #Python
You might like
用PHP调用Oracle存储过程的方法
2008/09/12 PHP
php 变量未定义等错误的解决方法
2011/01/12 PHP
thinkphp普通查询与表达式查询实例分析
2014/11/24 PHP
PHP关联数组实现根据元素值删除元素的方法
2015/06/26 PHP
Symfony2之session与cookie用法小结
2016/03/18 PHP
Zend Framework基本页面布局分析
2016/03/19 PHP
php连接oracle数据库的方法(测试成功)
2016/05/26 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
2018/02/07 PHP
js 数组实现一个类似ruby的迭代器
2009/10/27 Javascript
可以用鼠标拖动的DIV实现思路及代码
2013/10/21 Javascript
简单谈谈json跨域
2016/03/13 Javascript
使用PHP+JavaScript将HTML页面转换为图片的实例分享
2016/04/18 Javascript
详解angularjs结合pagination插件实现分页功能
2017/02/10 Javascript
关于Bootstrap按钮组件消除黄框的方法
2017/05/19 Javascript
Node.js中Bootstrap-table的两种分页的实现方法
2017/09/18 Javascript
使用jQuery 操作table 完成单元格合并的实例
2017/12/27 jQuery
详解使用VueJS开发项目中的兼容问题
2018/08/02 Javascript
微信小程序动态增加按钮组件
2018/09/14 Javascript
vue中多个倒计时实现代码实例
2019/03/27 Javascript
Vue动态创建注册component的实例代码
2019/06/14 Javascript
js实现随机抽奖
2020/03/19 Javascript
JS前后端实现身份证号验证代码解析
2020/07/23 Javascript
vue中h5端打开app(判断是安卓还是苹果)
2021/02/26 Vue.js
[59:30]完美世界DOTA2联赛PWL S3 access vs LBZS 第二场 12.20
2020/12/23 DOTA
Python实现的数据结构与算法之队列详解
2015/04/22 Python
django多文件上传,form提交,多对多外键保存的实例
2019/08/06 Python
Pandas DataFrame中的tuple元素遍历的实现
2019/10/23 Python
在django-xadmin中APScheduler的启动初始化实例
2019/11/15 Python
纯CSS实现菜单、导航栏的3D翻转动画效果
2014/04/23 HTML / CSS
Banana Republic欧盟:美国都市简约风格的代表品牌
2018/05/09 全球购物
Oasis服装官网:时尚女装在线
2020/07/09 全球购物
struct与class的区别
2014/02/03 面试题
异步传递消息系统的作用
2016/05/01 面试题
学校政风行风评议工作总结
2014/10/21 职场文书
世界水日宣传活动总结
2015/02/09 职场文书
田径运动会通讯稿
2015/07/18 职场文书