Pyhon网络爬虫(二)

就像学驾照你需要一台车,幸运的是我们的爬虫在上一篇已经选择了Pyhton,恭喜你,这是一辆自动档的车,相信你可以愉快轻松的上路

我们学习第一步:requests库

我们的爬虫如何进入网络,路在哪里?

   URL便是我们的入口,网络上的资源全部都可以通过URL链接得到

   URL的格式

我们利用requests库可以轻松,通过URL访问网络

(1)安装requests库 Windows 平台 运行 cmd,执行pip install requests

(安装出问题,请检查配置环境变量)

(2)尝试第一个程序,比如访问百度

1 import requests
2 url = "http://www.baidu.com"
3 re = requests.get(url)
4 print(re.text[0:1000])

上面就是一个最基本的爬虫,我们只是用了几行代码就实现了这个功能,是不是轻松愉快?

上面的程序通过get方法,成功的访问了百度,并获得了页面的信息,先不用了解这些信息的含义,我们先重点关注requests的get方法,这些方法如果你对HTTP协议稍微有所了解的话,你应该就猜到这些方法帮你实现了相应的http协议,你仅需调用这些方法就可以。

重点分析requests.get()方法:

r = requests.get(url) 构造一个向服务器请求资源的Request对象,返回一个包含服务器资源的Response对象

当然还可以带其他参数

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

url : 拟获取页面的url链接
? params : url中的额外参数,字典或字节流格式,可选
? **kwargs: 12个控制访问的参数

我们可以看一下这个第二个参数的用法,我们打开百度输入博客园搜索,我们在浏览器看到是这样一个链接

https://www.baidu.com/s?wd=博客园

当然后面可能还会跟很多参数,我们先忽略

1 import requests
2 params = {"wd":"博客园"}
3 url = "http://www.baidu.com/s"
4 re = requests.get(url,params)
5 print(re.text[0:1000]

我们可以看到返回了百度搜索博客园的信息

我们还要再看一下返回的对象有哪些属性

Response 属性 说明

r.status_code HTTP请求的返回状态,200表示连接成功,404表示失败

r.text HTTP响应内容的字符串形式,即,url对应的页面内容
r.encoding 从HTTP header中猜测的响应内容编码方式
r.apparent_encoding 从内容中分析出的响应内容编码方式(备选编码方式)
r.content HTTP响应内容的二进制形式

我们必须要考虑到一些情况一个是如果请求错误该如何?(错误会有很多原因url错误,无法连接)

第二是编码的问题,知道正确的编码编码我们才能后续更好的去处理数据

r.encoding:如果header中不存在charset,则认为编码为ISO‐8859‐1
r.text根据r.encoding显示网页内容
r.apparent_encoding:根据网页内容分析出的编码方式
可以看作是r.encoding的备选

所以需要对上面的属性了解并合理使用

我们修改下代码:

 1 import requests
 2 params = {"wd":"博客园"}
 3 url = "http://www.baidu.com/s"
 4 try:
 5     re = requests.get(url,params)
 6     re.raise_for_status()
 7     re.encoding = re.apparent_encoding
 8     print(re.text[0:1000])
 9
10 except:
11     print("产生错误")

以下是requests库的几个组要方法

方法              说明
requests.request()         构造一个请求,支撑以下各方法的基础方法
requests.get()           获取HTML网页的主要方法,对应于HTTP的GET
requests.head()        获取HTML网页头信息的方法,对应于HTTP的HEAD
requests.post()         向HTML网页提交POST请求的方法,对应于HTTP的POST
requests.put()           向HTML网页提交PUT请求的方法,对应于HTTP的PUT
requests.patch()       向HTML网页提交局部修改请求,对应于HTTP的PATCH
requests.delete()      向HTML页面提交删除请求,对应于HTTP的DELETE

时间: 2024-11-29 05:05:39

Pyhon网络爬虫(二)的相关文章

零基础自学Python 3开发网络爬虫(二): 用到的数据结构简介以及爬虫Ver1.0 alpha

上一回, 我学会了 用伪代码写出爬虫的主要框架; 用Python的urllib.request库抓取指定url的页面; 用Python的urllib.parse库对普通字符串转符合url的字符串. 这一回, 开始用Python将伪代码中的所有部分实现. 由于文章的标题就是"零基础", 因此会先把用到的两种数据结构队列和集合介绍一下. 而对于"正则表达式"部分, 限于篇幅不能介绍, 但给出我比较喜欢的几个参考资料. Python的队列 在爬虫程序中, 用到了广度优先搜

Python3网络爬虫——二、Urllib库的基本使用

一.什么是Urllib Urllib库是Python自带的一个http请求库,包含以下几个模块: urllib.request 请求模块 urllib.error   异常处理模块 urllib.parse   url解析模块 urllib.robotparser  robots.txt解析模块 其中前三个模块比较常用,第四个仅作了解. 二.Urllib方法介绍 将结合Urllib的官方文档进行说明.首先是urllib.request模块: urllib.request.urlopen(url,

Python3网络爬虫(二):利用urllib.urlopen向有道翻译发送数据获得翻译结果

一.urlopen的url参数 Agent url不仅可以是一个字符串,例如:http://www.baidu.com.url也可以是一个Request对象,这就需要我们先定义一个Request对象,然后将这个Request对象作为urlopen的参数使用,方法如下: # -*- coding: UTF-8 -*- from urllib import request if __name__ == "__main__": req = request.Request("http

【Python网络爬虫二】使用urllib2抓去网页内容

在Python中通过导入urllib2组件,来完成网页的抓取工作.在python3.x中被改为urllib.request. 爬取具体的过程类似于使用程序模拟IE浏览器的功能,把URL作为HTTP请求的内容发送到服务器端, 然后读取服务器端的响应资源. 实现过程: 1 import urllib2 2 3 response=urllib2.urlopen('http://gs.ccnu.edu.cn/') 4 html=response.read() 5 print html 将返回的html信

最简单的网络图片的爬取 --Pyhon网络爬虫与信息获取

1.本次要爬取的图片url http://www.nxl123.cn/static/imgs/php.jpg 2.代码部分 import requestsimport osurl = "http://www.nxl123.cn/static/imgs/php.jpg"root = "C:/Users/Niuxi/Desktop/pic/"#注意最后“/”带上path = root+url.split('/')[-1]try: if not os.path.exist

Python 3开发网络爬虫(四): 登录

原文出处: Jecvay Notes (@Jecvay) <零基础自学用Python 3开发网络爬虫(一)> <零基础自学用Python 3开发网络爬虫(二)> <零基础自学用Python 3开发网络爬虫(三)> 今天的工作很有意思, 我们用 Python 来登录网站, 用Cookies记录登录信息, 然后就可以抓取登录之后才能看到的信息. 今天我们拿知乎网来做示范. 为什么是知乎? 这个很难解释, 但是肯定的是知乎这么大这么成功的网站完全不用我来帮他打广告. 知乎网的

Python3网络爬虫(七):使用Beautiful Soup爬取小说

转载请注明作者和出处:http://blog.csdn.net/c406495762 运行平台: Windows Python版本: Python3.x IDE: Sublime text3 一.Beautiful Soup简介 简单来说,Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据.官方解释如下: Beautiful Soup提供一些简单的.python式的函数用来处理导航.搜索.修改分析树等功能.它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简

python网络爬虫入门(二)——用python简单实现调用谷歌翻译

最近在看国外的文档,有些生词不认识.就用谷歌翻译来理解,用着用着闲来无事就按F12查看了下页面的源代码.发现可以用python简单的实现下谷歌翻译的页面功能.于是先上网搜下有没有类似的文章博客,发现几篇不错的,于是参考其他代码与自己的思路,简单的实现了下翻译的功能,代码如下: import re import urllib,urllib2 #----------模拟浏览器的行为,向谷歌翻译发送数据,然后抓取翻译结果,这就是大概的思路------- def Gtranslate(text): #t

Golang 网络爬虫框架gocolly/colly 二 jQuery selector

Golang 网络爬虫框架gocolly/colly 二 jQuery selector colly框架依赖goquery库,goquery将jQuery的语法和特性引入到了go语言中.如果要灵活自如地采集数据,首先要了解jQuery选择器.以下内容是翻译jQuery官方网站 <Category: Selectors>章节内容: Category: Selectors Borrowing from CSS 1–3, and then adding its own, jQuery offers