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+mysql实现简单的web程序
Sep 11 Python
详解python校验SQL脚本命名规则
Mar 22 Python
PIL图像处理模块paste方法简单使用详解
Jul 17 Python
python正则表达式匹配不包含某几个字符的字符串方法
Jul 23 Python
用Python实现二叉树、二叉树非递归遍历及绘制的例子
Aug 09 Python
Python 实现Numpy中找出array中最大值所对应的行和列
Nov 26 Python
Python图片的横坐标汉字实例
Dec 04 Python
python如何使用jt400.jar包代码实例
Dec 20 Python
解决jupyter notebook打不开无反应 浏览器未启动的问题
Apr 10 Python
浅谈keras中的目标函数和优化函数MSE用法
Jun 10 Python
python 怎样进行内存管理
Nov 10 Python
Python中使用Opencv开发停车位计数器功能
Apr 04 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_screw安装使用教程(另一个PHP代码加密实现)
2014/05/29 PHP
PHP+Mysql实现多关键字与多字段生成SQL语句的函数
2014/11/05 PHP
微信公众平台开发之配置与请求
2015/08/26 PHP
JS 字符串连接[性能比较]
2009/05/10 Javascript
js实现的常用的左侧导航效果
2013/10/17 Javascript
JavaScript程序员应该知道的45个实用技巧
2014/03/04 Javascript
教你如何使用firebug调试功能了解javascript闭包和this
2015/03/04 Javascript
JS实现选中当前菜单后高亮显示的导航条效果
2015/10/15 Javascript
关于Bootstrap弹出框无法调用问题的解决办法
2016/03/10 Javascript
jQuery实时显示鼠标指针位置和键盘ASCII码
2016/03/28 Javascript
jQuery+json实现动态创建复杂表格table的方法
2016/10/25 Javascript
简单实现jQuery多选框功能
2017/01/09 Javascript
微信小程序 转发功能的实现
2017/08/04 Javascript
javascript将list转换成树状结构的实例
2017/09/08 Javascript
jQuery实现的form转json经典示例
2017/10/10 jQuery
vue填坑之webpack run build 静态资源找不到的解决方法
2018/09/03 Javascript
使用jQuery如何写一个含验证码的登录界面
2019/05/13 jQuery
layui实现多图片上传并限制上传的图片数量
2019/09/26 Javascript
JS实现可视化音频效果的实例代码
2020/01/16 Javascript
JS实现横向轮播图(初级版)
2020/06/24 Javascript
[01:10]DOTA2次级职业联赛 - EP战队宣传片
2014/12/01 DOTA
[05:13]2018DOTA2亚洲邀请赛主赛事第二日战况回顾 LGD、VG双雄携手晋级
2018/04/05 DOTA
[55:25]VGJ.T vs Optic Supermajor小组赛D组 BO3 第三场 6.3
2018/06/04 DOTA
Python实现简单截取中文字符串的方法
2015/06/15 Python
python抓取并保存html页面时乱码问题的解决方法
2016/07/01 Python
python linecache 处理固定格式文本数据的方法
2019/01/08 Python
微信公众号token验证失败解决方案
2019/07/22 Python
在macOS上搭建python环境的实现方法
2019/08/13 Python
python中requests模拟登录的三种方式(携带cookie/session进行请求网站)
2020/11/17 Python
python中用ggplot绘制画图实例讲解
2021/01/26 Python
CSS3中31种选择器使用方法教程
2013/12/05 HTML / CSS
详解HTML5 录音的踩坑之旅
2017/12/26 HTML / CSS
了解AppleShare protocol(AppleShare协议)吗
2015/08/28 面试题
出生证明格式
2015/06/15 职场文书
先进工作者主要事迹材料
2015/11/03 职场文书
教你使用TensorFlow2识别验证码
2021/06/11 Python