全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

python3使用requests模块爬取页面内容的实战演练

1.安装pip

我的个人桌面系统用的linuxmint,系统默认没有安装pip,考虑到后面安装requests模块使用pip,所以我这里第一步先安装pip。

$ sudo apt install python-pip

安装成功,查看PIP版本:

$ pip -V

2.安装requests模块

这里我是通过pip方式进行安装:

$ pip install requests

运行import requests,如果没提示错误,那说明已经安装成功了!

检验是否安装成功

3.安装beautifulsoup4

Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库。它能够通过你喜欢的转换器实现惯用的文档导航,查找、修改文档的方式。Beautiful Soup会帮你节省数小时甚至数天的工作时间。

$ sudo apt-get install python3-bs4

注:这里我使用的是python3的安装方式,如果你用的是python2,可以使用下面命令安装。

$ sudo pip install beautifulsoup4

4.requests模块浅析

1)发送请求

首先当然是要导入 Requests 模块:

>>> import requests

然后,获取目标抓取网页。这里我以下为例:

>>> r = requests.get('https://www./article/124421.htm')

这里返回一个名为 r 的响应对象。我们可以从这个对象中获取所有我们想要的信息。这里的get是http的响应方法,所以举一反三你也可以将其替换为put、delete、post、head。

2)传递URL参数

有时我们想为 URL 的查询字符串传递某种数据。如果你是手工构建 URL,那么数据会以键/值对的形式置于 URL 中,跟在一个问号的后面。例如, cnblogs.com/get?key=val。 Requests 允许你使用 params 关键字参数,以一个字符串字典来提供这些参数。

举例来说,当我们google搜索“python爬虫”关键词时,newwindow(新窗口打开)、q及oq(搜索关键词)等参数可以手工组成URL ,那么你可以使用如下代码:

>>> payload = {'newwindow': '1', 'q': 'python爬虫', 'oq': 'python爬虫'}

>>> r = requests.get("https://www.google.com/search", params=payload)

3)响应内容

通过r.text或r.content来获取页面响应内容。

>>> import requests

>>> r = requests.get('https://github.com/timeline.json')

>>> r.text

Requests 会自动解码来自服务器的内容。大多数 unicode 字符集都能被无缝地解码。这里补充一点r.text和r.content二者的区别,简单说:

resp.text返回的是Unicode型的数据;

resp.content返回的是bytes型也就是二进制的数据;

所以如果你想取文本,可以通过r.text,如果想取图片,文件,则可以通过r.content。

4)获取网页编码

>>> r = requests.get('http://www.cnblogs.com/')

>>> r.encoding

'utf-8'

5)获取响应状态码

我们可以检测响应状态码:

>>> r = requests.get('http://www.cnblogs.com/')

>>> r.status_code

200

5.案例演示

最近公司刚引入了一款OA系统,这里我以其官方说明文档页面为例,并且只抓取页面中文章标题和内容等有用信息。

演示环境

操作系统:linuxmint

python版本:python 3.5.2

使用模块:requests、beautifulsoup4

代码如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
_author_ = 'GavinHsueh'

import requests
import bs4

#要抓取的目标页码地址
url = 'http://www.ranzhi.org/book/ranzhi/about-ranzhi-4.html'

#抓取页码内容,返回响应对象
response = requests.get(url)

#查看响应状态码
status_code = response.status_code

#使用BeautifulSoup解析代码,并锁定页码指定标签内容
content = bs4.BeautifulSoup(response.content.decode("utf-8"), "lxml")
element = content.find_all(id='book')

print(status_code)
print(element)

程序运行返回爬去结果:

抓取成功

关于爬去结果乱码问题

其实起初我是直接用的系统默认自带的python2操作的,但在抓取返回内容的编码乱码问题上折腾了老半天,google了多种解决方案都无效。在被python2“整疯“之后,只好老老实实用python3了。对于python2的爬取页面内容乱码问题,欢迎各位前辈们分享经验,以帮助我等后生少走弯路。

后记

python的爬虫相关模块有很多,除了requests模块,再如urllib和pycurl以及tornado等。相比而言,我个人觉得requests模块是相对简单易上手的了。通过文本,大家可以迅速学会使用python的requests模块爬取页码内容。本人能力有限,如果文章有任何错误欢迎不吝赐教,其次如果大家有任何关于python爬去页面内容的疑难杂问,也欢迎和大家一起交流讨论。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# python3  # requests模块爬取  # python爬取页面内容  # python  # requests爬取页面内容  # Python利用Scrapy框架爬取豆瓣电影示例  # Python爬虫实现的根据分类爬取豆瓣电影信息功能示例  # Python实现的爬取豆瓣电影信息功能案例  # Python使用mongodb保存爬取豆瓣电影的数据过程解析  # Python爬虫——爬取豆瓣电影Top250代码实例  # 一个简单的python爬虫程序 爬取豆瓣热度Top100以内的电影信息  # Python使用requests模块爬取百度翻译  # python使用requests模块实现爬取电影天堂最新电影信息  # Python3爬虫爬取百姓网列表并保存为json功能示例【基于request、lxml和json模块  # Python3实现爬虫爬取赶集网列表功能【基于request和BeautifulSoup模块】  # python使用re模块爬取豆瓣Top250电影  # 关键词  # 的是  # 我是  # 我们可以  # 爬去  # 为例  # 文档  # 是一个  # 有任何  # 你是  # 你可以  # 不吝赐教  # 有很多  # 都能  # 但在  # 帮你  # 举例来说  # 你想  # 将其  # 可以通过 


相关文章: 如何访问已购建站主机并解决登录问题?  如何通过.red域名打造高辨识度品牌网站?  深圳网站制作培训,深圳哪些招聘网站比较好?  如何通过WDCP绑定主域名及创建子域名站点?  官网建站费用明细查询_企业建站套餐价格及收费标准指南  php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】  建站主机与服务器功能差异如何区分?  视频网站制作教程,怎么样制作优酷网的小视频?  如何通过虚拟主机快速完成网站搭建?  网站app免费制作软件,能免费看各大网站视频的手机app?  黑客入侵网站服务器的常见手法有哪些?  建站之星客服服务时间及联系方式如何?  如何做网站制作流程,*游戏网站怎么搭建?  Java解压缩zip - 解压缩多个文件或文件夹实例  如何选择适配移动端的WAP自助建站平台?  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  建站主机选虚拟主机还是云服务器更好?  网页制作模板网站推荐,网页设计海报之类的素材哪里好?  微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  公司网站制作费用多少,为公司建立一个网站需要哪些费用?  企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?  测试制作网站有哪些,测试性取向的权威测试或者网站?  制作农业网站的软件,比较好的农业网站推荐一下?  宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?  临沂网站制作公司有哪些,临沂第四中学官网?  大同网页,大同瑞慈医院官网?  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  简单实现Android验证码  网站制作大概要多少钱一个,做一个平台网站大概多少钱?  *服务器网站为何频现安全漏洞?  建站之星如何修改网站生成路径?  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  如何在阿里云域名上完成建站全流程?  建站之星后台管理如何实现高效配置?  如何选择服务器才能高效搭建专属网站?  桂林网站制作公司有哪些,桂林马拉松怎么报名?  建站之星北京办公室:智能建站系统与小程序生成方案解析  linux top下的 minerd 木马清除方法  已有域名如何快速搭建专属网站?  广州营销型建站服务商推荐:技术优势与SEO优化解析  如何选择可靠的免备案建站服务器?  实例解析angularjs的filter过滤器  如何在香港免费服务器上快速搭建网站?  如何破解联通资金短缺导致的基站建设难题?  哈尔滨网站建设策划,哈尔滨电工证查询网站?  c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】  文字头像制作网站推荐软件,醒图能自动配文字吗?  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。