用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利用hook技术破解https的实例代码
Mar 25 Python
python为tornado添加recaptcha验证码功能
Feb 26 Python
Python标准库之随机数 (math包、random包)介绍
Nov 25 Python
python3+PyQt5+Qt Designer实现堆叠窗口部件
Apr 20 Python
python 获取文件下所有文件或目录os.walk()的实例
Apr 23 Python
python+opencv实现阈值分割
Dec 26 Python
Python中请不要再用re.compile了
Jun 30 Python
使用pandas的box_plot去除异常值
Dec 10 Python
Python计算机视觉里的IOU计算实例
Jan 17 Python
pycharm 激活码及使用方式的详细教程
May 12 Python
python递归函数用法详解
Oct 26 Python
Python 数据科学 Matplotlib图库详解
Jul 07 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
php 无法加载mcrypt.dll的解决办法
2013/04/03 PHP
解析smarty 截取字符串函数 truncate的用法介绍
2013/06/20 PHP
PHP获取客户端真实IP地址的5种情况分析和实现代码
2014/07/08 PHP
浅谈PHP中try{}catch{}的使用方法
2016/12/09 PHP
php给数组赋值的实例方法
2019/09/26 PHP
javascript编程起步(第七课)
2007/02/27 Javascript
在浏览器中打开或关闭JavaScript的方法
2015/06/03 Javascript
javascript函数自动执行常用方法汇总
2016/03/28 Javascript
用jquery快速解决IE输入框不能输入的问题
2016/10/04 Javascript
读Javascript高性能编程重点笔记
2016/12/21 Javascript
jQuery实现拖拽可编辑模块功能代码
2017/01/12 Javascript
原生js获取left值和top值的三种方法
2017/08/02 Javascript
基于jQuery.i18n实现web前端的国际化
2018/05/04 jQuery
Nodejs Express 通过log4js写日志到Logstash(ELK)
2018/08/30 NodeJs
使用pkg打包ThinkJS项目的方法步骤
2019/12/30 Javascript
Node.js Domain 模块实例详解
2020/03/18 Javascript
Vue实现点击当前行变色
2020/12/14 Vue.js
Vue实现随机验证码功能
2020/12/29 Vue.js
JS数组索引检测中的数据类型问题详解
2021/01/11 Javascript
[51:53]完美世界DOTA2联赛决赛日 Inki vs LBZS 第二场 11.08
2020/11/10 DOTA
python实现自动发送邮件发送多人、群发、多附件的示例
2018/01/23 Python
python3+PyQt5实现柱状图
2018/04/24 Python
python 对dataframe下面的值进行大规模赋值方法
2018/06/09 Python
python正则表达式匹配[]中间为任意字符的实例
2018/12/25 Python
详解pandas.DataFrame中删除包涵特定字符串所在的行
2019/04/04 Python
Python利用matplotlib做图中图及次坐标轴的实例
2019/07/08 Python
python实现根据文件格式分类
2019/10/31 Python
python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配
2020/02/29 Python
Farfetch香港官网:汇集全球时尚奢侈品购物平台
2017/11/26 全球购物
英国的领先快速时尚零售商:In The Style
2019/03/25 全球购物
给校长的建议书
2014/03/12 职场文书
工作评语大全
2014/04/26 职场文书
班子四风对照检查材料
2014/08/21 职场文书
重阳节活动主持词
2015/07/04 职场文书
2016年党员读书月活动总结
2016/04/06 职场文书
教你怎么用Python生成九宫格照片
2021/05/20 Python