用python写爬虫简单吗


Posted in Python onJuly 28, 2020

所谓网络爬虫,通俗的讲,就是通过向我们需要的URL发出http请求,获取该URL对应的http报文主体内容,之后提取该报文主体中我们所需要的信息。

下面是一个简单的爬虫程序

http基本知识

当我们通过浏览器访问指定的URL时,需要遵守http协议。本节将介绍一些关于http的基础知识。

http基本流程

我们打开一个网页的过程,就是一次http请求的过程。这个过程中,我们自己的主机充当着客户机的作用,而充当客户端的是浏览器。我们输入的URL对应着网络中某台服务器上面的资源,服务器接收到客户端发出的http请求之后,会给客户端一个响应,响应的内容就是请求的URL对应的内容,当客户端接收到服务器的响应时,我们就可以在浏览器上看见请求的信息了。

我们可以通过python的requests模块很方便的发起http请求。requests模块是第三方模块,安装完成之后直接import就能使用。下面介绍一些简单的用法

发起请求

import requests
# 请求的首部信息
headers = {
  'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) 
  Chrome/65.0.3325.146 Safari/537.36'
}
# 例子的url
url = 'https://voice.hupu.com/nba' # 虎扑nba新闻
# 利用requests对象的get方法,对指定的url发起请求
# 该方法会返回一个Response对象
res = requests.get(url, headers=headers)
# 通过Response对象的text方法获取网页的文本信息
print(res.text)

上面的代码中,我们向虎扑的服务器发送了一个get请求,获取虎扑首页的nba新闻。headers参数指的是http请求的首部信息,我们请求的url对应的资源是虎扑nba新闻的首页。获取到对应的网页资源之后,我们需要对其中的信息进行提取。

通过BeautifulSoup提取网页信息

BeautifulSoup库提供了很多解析html的方法,可以帮助我们很方便地提取我们需要的内容。我们这里说的BeautifulSoup指的是bs4。当我们成功抓取网页之后,就可以通过BeautifulSoup对象对网页内容进行解析。在BeautifulSoup中,我们最常用的方法就是find()方法和find_all()方法,借助于这两个方法,可以轻松地获取到我们需要的标签或者标签组。关于其他的方法,可以参考bs4的官方文档:BeautifulSoup

find()方法和find_all()方法的用法如下

find(name , attrs , recursive , string , **kwargs )
# find_all()方法将返回文档中符合条件的所有tag,
find_all(name , attrs , recursive , string , **kwargs )
from bs4 import BeautifulSoup
# BeautifulSoup对象接收html文档字符串
# lxml是html解析器
soup = Beautiful(res.text, 'lxml')
# 下面的方法找出了所有class为hello的span标签
# 并将所有的结果都放入一个list返回
tags = soup.find_all('span', {'class': 'hello'})

实例扩展:

实例一:

#第一种方法
import urllib2 #将urllib2库引用进来
response=urllib2.urlopen("http://www.baidu.com") #调用库中的方法,将请求回应封装到response对象中
html=response.read() #调用response对象的read()方法,将回应字符串赋给hhtml变量
print html #打印出来

实例二:

#第二中方法
import urllib2
req=urllib2.Request("http://ww.baidu.com")
response=urllib2.urlopen(req)
html = response.read()
print html

到此这篇关于用python写爬虫简单吗的文章就介绍到这了,更多相关python写爬虫难吗内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python中对列表排序实例
Jan 04 Python
python实现批量按比例缩放图片效果
Mar 30 Python
对python3 urllib包与http包的使用详解
May 10 Python
python最长回文串算法
Jun 04 Python
Django 使用easy_thumbnails压缩上传的图片方法
Jul 26 Python
Python Request爬取seo.chinaz.com百度权重网站的查询结果过程解析
Aug 13 Python
python日志模块logbook使用方法
Sep 19 Python
Python 单例设计模式用法实例分析
Sep 23 Python
解决python 读取excel时 日期变成数字并加.0的问题
Oct 08 Python
通过celery异步处理一个查询任务的完整代码
Nov 19 Python
基于Python和PyYAML读取yaml配置文件数据
Jan 13 Python
Python基于字典实现switch case函数调用
Jul 22 Python
公认8个效率最高的爬虫框架
Jul 28 #Python
python如何爬取网页中的文字
Jul 28 #Python
Python同时处理多个异常的方法
Jul 28 #Python
Python远程方法调用实现过程解析
Jul 28 #Python
Python 实现一个计时器
Jul 28 #Python
python爬虫要用到的库总结
Jul 28 #Python
Python常用类型转换实现代码实例
Jul 28 #Python
You might like
比file_get_contents稳定的curl_get_contents分享
2012/01/11 PHP
PHP服务器页面间跳转实现方法
2012/08/02 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
2019/11/25 PHP
PHP数据源架构模式之表入口模式实例分析
2020/01/23 PHP
jQuery自定义事件的简单实现代码
2014/01/27 Javascript
jQuery老黄历完整实现方法
2015/01/16 Javascript
详解Angular开发中的登陆与身份验证
2016/07/27 Javascript
纯JS代码实现隔行变色鼠标移入高亮
2016/11/23 Javascript
Js apply方法详解
2017/02/16 Javascript
vue数据双向绑定的注意点
2017/06/23 Javascript
js 事件的传播机制(实例讲解)
2017/07/20 Javascript
详解在express站点中使用ejs模板引擎
2017/09/21 Javascript
快速解决select2在bootstrap模态框中下拉框隐藏的问题
2018/08/10 Javascript
ES6 Promise对象的应用实例分析
2019/06/27 Javascript
JS实现图片切换特效
2019/12/23 Javascript
原生JS运动实现轮播图
2021/01/02 Javascript
[01:48]DOTA2 2015国际邀请赛中国区预选赛第二日战报
2015/05/27 DOTA
[55:25]VGJ.T vs Optic Supermajor小组赛D组 BO3 第三场 6.3
2018/06/04 DOTA
python实现定时播放mp3
2015/03/29 Python
windows 10下安装搭建django1.10.3和Apache2.4的方法
2017/04/05 Python
Pandas 按索引合并数据集的方法
2018/11/15 Python
Python处理时间日期坐标轴过程详解
2019/06/25 Python
python re.sub()替换正则的匹配内容方法
2019/07/22 Python
Python标准库json模块和pickle模块使用详解
2020/03/10 Python
如何在sublime编辑器中安装python
2020/05/20 Python
python使用nibabel和sitk读取保存nii.gz文件实例
2020/07/01 Python
python中的错误如何查看
2020/07/08 Python
MyFrenchPharma中文网:最大的法国药妆平台
2016/10/07 全球购物
eDreams德国:南欧领先的在线旅游公司
2020/12/07 全球购物
会计电算化专业求职信
2014/06/10 职场文书
学生意外伤害赔偿协议书
2014/09/17 职场文书
工作粗心大意检讨书
2014/09/18 职场文书
公务员学习习总书记“三严三实”思想汇报
2014/09/19 职场文书
三八妇女节寄语
2015/02/27 职场文书
2016创先争优活动党员公开承诺书
2016/03/24 职场文书
Pandas实现DataFrame的简单运算、统计与排序
2022/03/31 Python