python爬虫主要分为三个部分:抓取、分析以及存储。

1、抓取:如何抓取网页内容呢?使用urllib2或者request抓取网页内容。
打开百度-图片,我们看到的是一张张精美的图片,这个过程其实是用户输入网址之后,经过DNS服务器解析,找到服务器主机,向主机申请访问,主机经过解析之后发送回浏览器HTML+JS+CSS等代码,浏览器对这些代码进行解析便可以看到我们申请访问的内容。

下面我们抓取百度首页的源码为例:
1、使用urllib2库

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

将代码写入一个文件并保存,在相应的目录执行命令查看结果。

python e.py

传入url,这个是百度网页的首页,协议是HTTP协议,当然你也可以把HTTP换做FTP,FILE,HTTPS 等等,这只是代表了一种访问控制协议,urlopen可以接受三个参数:

urlopen(url, data, timeout)

参数1:url就是我们将要访问的网址。
参数2:data是我们要上传到服务器的地址。
参数3:tiemout是超时时间。
当然第2、3个参数是可以不传送的,data默认为空None,timeout默认为socket._GLOBAL_DEFAULT_TIMEOUT。

方法返回一个response对象,返回的所有信息都保存在这个对象中。
使用该对象的read()方法,读取对象中的内容。

2、使用request
我们也可以使用request请求,Request类的实例,构造时传入url,data等内容。比如上面的两行代码,我们可以这么改写:

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

这种写法中间多一个request对象,建议大家如是写,因为有些时候我们爬取网页的时候,还要上传一些其他的信息,这时候使用request就会好很多,通过构建一个request(请求),服务器响应请求,这样更容易看明白。

上面的程序向大家展示了如何抓取静态网页的内容,不过大多数时候都是动态的,既需要你传递参数给它,比如登陆账号和密码。怎么办呢?这时候就用到了我们前面说的data参数了。
我们将需要上传的账号密码等信息,传送到url中,得到服务器的响应。

我们定义一个字典,名字为values,设置username和password,下面利用urllib的urlencode方法将字典编码,命名为data,构建request时传入两个参数,url和data,运行程序,返回的便是页面内容。

import urllib2
import urllib
url = "http://passport.xxxx.net/account/login"
values = {"account":"wdf880817@sina.com", "password":"xxxxxxx"}
data = urllib.urlencode(values)
geturl = url + '?' + data
request = urllib2.Request(geturl)
response = urllib2.urlopen(request)
print response.read()

字典的定义方式还有一种:

import urllib2
import urllib
url = "http://passport.xxxx.net/account/login"
values = {}
values["account"] = "wdf880817@sina.com"
values["password"] = "xxxxxxxxxx"
data = urllib.urlencode(values)
geturl = url + "?" + data
request = urllib2.Request(geturl)
response = urllib2.urlopen(request)
print response.read()

将geturl打印出来,我们得到

http://xxxxxx.csdn.net/account/login?account=wdf880817@sina.com&password=xxxxxxxx

这样我们就得到了http://xxxxxx.csdn.net网页中,账号密码分别为wdf880817@sina.com和xxxxxxxx的用户的相关数据。

python-爬虫(1)相关推荐

  1. 关于Python爬虫原理和数据抓取1.1

    为什么要做爬虫? 首先请问:都说现在是"大数据时代",那数据从何而来? 企业产生的用户数据:百度指数.阿里指数.TBI腾讯浏览指数.新浪微博指数 数据平台购买数据:数据堂.国云数据 ...

  2. python爬虫之Scrapy框架的post请求和核心组件的工作 流程

    python爬虫之Scrapy框架的post请求和核心组件的工作 流程 一 Scrapy的post请求的实现 在爬虫文件中的爬虫类继承了Spider父类中的start_urls,该方法就可以对star ...

  3. python爬虫抓取信息_python爬虫爬取网上药品信息并且存入数据库

    我最近在学习python爬虫,然后正好碰上数据库课设,我就选了一个连锁药店的,所以就把网上的药品信息爬取了下来. 1,首先分析网页 2,我想要的是评论数比较多的,毕竟好东西大概是买的人多才好.然后你会 ...

  4. python爬虫案例_推荐上百个github上Python爬虫案例

    现在学生都对爬虫感兴趣,这里发现一些好的github开源的代码,分享给各位 1.awesome-spider 该网站提供了近上百个爬虫案例代码,这是ID为facert的一个知乎工程师开源的,star6 ...

  5. Python培训分享:python爬虫可以用来做什么?

    爬虫又被称为网络蜘蛛,它可以抓取我们页面的一些相关数据,近几年Python技术的到来,让我们对爬虫有了一个新的认知,那就是Python爬虫,下面我们就来看看python爬虫可以用来做什么? Pytho ...

  6. 玩转 Python 爬虫,需要先知道这些

    作者 | 叶庭云 来源 | 修炼Python 头图 | 下载于视觉中国 爬虫基本原理 1. URI 和 URL URI 的全称为 Uniform Resource Identifier,即统一资源标志 ...

  7. 买不到口罩怎么办?Python爬虫帮你时刻盯着自动下单!| 原力计划

    作者 | 菜园子哇 编辑 | 唐小引 来源 | CSDN 博客 马上上班了,回来的路上,上班地铁上都是非常急需口罩的. 目前也非常难买到正品.发货快的口罩,许多药店都售完了. 并且,淘宝上一些新店口罩 ...

  8. 一个月入门Python爬虫,轻松爬取大规模数据

    如果你仔细观察,就不难发现,懂爬虫.学习爬虫的人越来越多,一方面,互联网可以获取的数据越来越多,另一方面,像 Python这样一个月入门Python爬虫,轻松爬的编程语言提供越来越多的优秀工具,让爬虫 ...

  9. Python爬虫获取文章的标题及你的博客的阅读量,评论量。所有数据写入本地记事本。最后输出你的总阅读量!

    Python爬虫获取文章的标题及你的博客的阅读量,评论量.所有数据写入本地记事本.最后输出你的总阅读量!还可以进行筛选输出!比如阅读量大于1000,之类的! 完整代码在最后.依据阅读数量进行降序输出! ...

  10. Python爬虫破解有道翻译

    有道翻译是以异步方式实现数据加载的,要实现对此类网站的数据抓取,其过程相对繁琐,本节我以有道翻译为例进行详细讲解. 通过控制台抓包,我们得知了 POST 请求的参数以及相应的参数值,如下所示: 图1: ...

最新文章

  1. js 禁止复制粘贴全选
  2. docker 查看容器日志大小 清除指定容器日志
  3. putty network error: connection refused
  4. 《研磨设计模式》chap20 享元模式 Flyweight (2)模式介绍
  5. Deep Reinforcement Learning: Pong from Pixels
  6. 纯js实现html转pdf
  7. nodemcu与matlab,NodeMCU Tutorial 1:NodeMCU + DS18S20 + Thingspeak + MATLAB
  8. 18 | 理论四:接口隔离原则有哪三种应用?原则中的“接口”该如何理解?
  9. 代码也浪漫——Python烟花秀
  10. C++类头文件交叉引用出现error C2143: 语法错误: 缺少“
  11. vb.net的UI设计
  12. 在线考试系统架构设计
  13. bum报文_数据中心VxLAN技术概念和原理解读
  14. 学电脑PHP,如何学电脑
  15. 学习关于 2D 和 3D 姿势估计的知识
  16. 解答诸葛亮反思的七条内容
  17. 经典梯度下降、随机梯度下降、批量梯度下降是个啥?
  18. 数部视频学习资源,一定有你想要的
  19. 专访Ruby之父:27年初心不改,Ruby绝不会停下脚步
  20. Proteus VSM Studio汇编 + 8位数码管+按键扫描

热门文章

  1. HTML5 蔡徐坤打篮球游戏 NMSL❤️❤️❤️
  2. 网页登录接口php,thinkphp-登入接口示例
  3. realmeq参数配置详情_小米11什么时候发布 小米11参数配置详情
  4. mysql 多数据库实例_Mysql多实例安装
  5. 什么是protobuf
  6. CompletableFuture 创建异步对象
  7. 往IOC 容器中添加组件的方式
  8. 添加tomcat7插件设置jdk编译版本
  9. 选择结构_标准的switch语句
  10. Hive的基本操作-自定义函数