用python写爬虫简单吗
所谓网络爬虫,通俗的讲,就是通过向我们需要的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-opencv-画外接矩形框的实例代码,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-09-04
Python astype(np.float)函数使用方法解析
这篇文章主要介绍了Python astype(np.float)函数使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-06-08- 2022虎年新年即将来临,小编为大家带来了一个利用Python编写的虎年烟花特效,堪称全网最绚烂,文中的示例代码简洁易懂,感兴趣的同学可以动手试一试...2022-02-14
- 在本篇文章里小编给大家分享的是一篇关于python中numpy.empty()函数实例讲解内容,对此有兴趣的朋友们可以学习下。...2021-02-06
python-for x in range的用法(注意要点、细节)
这篇文章主要介绍了python-for x in range的用法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-10- 这篇文章主要介绍了Python 图片转数组,二进制互转操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-09
- 这篇文章主要介绍了Python中的imread()函数用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-16
- 这篇文章主要介绍了python如何实现b站直播自动发送弹幕,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下...2021-02-20
python Matplotlib基础--如何添加文本和标注
这篇文章主要介绍了python Matplotlib基础--如何添加文本和标注,帮助大家更好的利用Matplotlib绘制图表,感兴趣的朋友可以了解下...2021-01-26- 这篇文章主要介绍了解决python 使用openpyxl读写大文件的坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-13
- 今天小编就为大家分享一篇python 计算方位角实例(根据两点的坐标计算),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-04-27
- 这篇文章主要为大家详细介绍了python实现双色球随机选号,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-05-02
- 在本篇文章里小编给大家整理的是一篇关于python中使用np.delete()的实例方法,对此有兴趣的朋友们可以学习参考下。...2021-02-01
- 这篇文章主要介绍了使用Python的pencolor函数实现渐变色功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-03-09
- 这篇文章主要介绍了python自动化办公操作PPT的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-05
Python getsizeof()和getsize()区分详解
这篇文章主要介绍了Python getsizeof()和getsize()区分详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-11-20- 这篇文章主要介绍了解决python 两个时间戳相减出现结果错误的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-12
- 这篇文章主要为大家详细介绍了python实现学生通讯录管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-02-25
- 这篇文章主要介绍了PyTorch一小时掌握之迁移学习篇,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-09-08
- 这篇文章主要介绍了Python绘制的爱心树与表白代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-04-06