码迷,mamicode.com
首页 > 编程语言 > 详细

Python简单爬虫第一蛋!

时间:2018-05-01 23:58:07      阅读:369      评论:0      收藏:0      [点我收藏+]

标签:order   连接   需要   哈哈哈   详细   框架   出现   shel   打开   

Python爬虫简单教程

一、准备工作:

①python 3.x 的环境

②Windows 10 操作系统

③能连接上互联网

二、注意事项:

①仅供参考学习,如有转载请注明出处!

②获取的数据不能用于商业应用,仅供学习。

③注意动手实践。

 

第一讲:第一个模块(requests)的使用教程

  首先,需要安装一下requests 模块,这个在系统命令行(cmd)中用

  pip install requests 命令完成。(这是很基本的操作,直接跳过哈)

  然后打开我们的IDE(这里我用的是Spyder,也可以用Python自带的Python shell来实现)。

 技术分享图片

  我在IPython中输入:

  import requests

  help(requests)

  以此来检查requests模块的安装是否成功,最终看到requests模块的版本(VERSION)是2.18.4。

 

  好,现在我们就来学习requests模块中的一个重要的函数:

  requests.get()

  例子:

  r = requests.get(‘http://www.hao123.com‘)

  r是函数返回的一个Response对象,基于该类型的对象,我们还有更多的函数可以调用,现在我们先学上面的get()方法。

  get()方法的参数很简单,就是一个url链接的字符串,这里选取好123网页导航来作为我们爬取的对象。

  接下来我们加快步伐了,哈哈哈!

  Resoponse对象的status_code属性可以返回获取网页的结果,text属性可以查看返回的内容,也就是我们爬取到的内容。

  看图:

 技术分享图片

  200表示成功,下面就打印出前500个字符的内容。

  已经跨出了我们的第一大步了,哈哈哈。

  下面整理出Requests模块的主要方法:

方法

说明

requests.request()

构造一个请求,支持下面方法的使用

requests.get()

获得HTML网页的主要方法

requests.head()

获取HTML网页头信息的方法

requests.post()

向HTML网页提交POST请求的方法

requests.put()

向HTML网页提交PUT请求的方法

requests.patch()

向HTML网页提交局部修改请求

requests.delete()

向HTML网页提交删除请求

 

  下面详细说明requests.get()方法

  requests.get(url,params=None,**kwargs)

  url:获取页面的url链接

  params:url中额外参数,可选

  **kwargs:12个控制访问的参数

 

  这些先留个悬念,日后再讲。

  下面介绍一个爬取网页的通用代码框架:

  看代码:

 1 ‘‘‘通用代码框架‘‘‘
 2 
 3 import requests
 4 
 5  
 6 
 7 def getHTML_Text(url):
 8 
 9     try:
10 
11         r = requests.get(url,timeout = 20)
12 
13         r.raise_for_status() #如果状态不是200,则产生异常
14 
15         r.encoding = r.apparent_encoding
16 
17         return r.text
18 
19     except:
20 
21         return 产生异常
22 
23  
24 
25 if __name__ == __main__:
26 
27     url = http://www.hao123.com
28 
29     print(getHTML_Text(url))

  r.raise_for_status() 是判定网页是否链接成功,如果是200 则可以进行下一步,如果不是200,则产生异常,进行异常处理。

 

  最后讲一下r.encoding = r.apparent_encoding 语句

  r.encoding 是从HTTP header中猜测的响应内容编码方式。

  r.apparent_encoding 是从内容分析出的响应内容编码方式。

  为了避免出现编码错误问题,就用该语句设置一下响应内容的编码形式,return r.text才能显示出正确的内容,否则是乱码。

  好了,今天的教程先到这里。下期见!

 

Python简单爬虫第一蛋!

标签:order   连接   需要   哈哈哈   详细   框架   出现   shel   打开   

原文地址:https://www.cnblogs.com/shuaiqi-XCJ/p/8977128.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!