用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实现apahce网站日志分析示例
Apr 02 Python
详解python之简单主机批量管理工具
Jan 27 Python
使用Python通过win32 COM实现Word文档的写入与保存方法
May 08 Python
Python操作mongodb的9个步骤
Jun 04 Python
使用Python读取二进制文件的实例讲解
Jul 09 Python
Python面向对象程序设计构造函数和析构函数用法分析
Apr 12 Python
在PyCharm中控制台输出日志分层级分颜色显示的方法
Jul 11 Python
Python代码实现http/https代理服务器的脚本
Aug 12 Python
Python3 无重复字符的最长子串的实现
Oct 08 Python
flask框架自定义url转换器操作详解
Jan 25 Python
Django 自定义权限管理系统详解(通过中间件认证)
Mar 11 Python
简单了解pytest测试框架setup和tearDown
Apr 14 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
Yii查询生成器(Query Builder)用法实例教程
2014/09/04 PHP
PHP mysqli_free_result()与mysqli_fetch_array()函数详解
2016/09/21 PHP
Ecshop 后台添加新功能栏目及管理权限设置教程
2017/11/21 PHP
图片格式的JavaScript和CSS速查手册
2007/08/20 Javascript
一些不错的js函数ajax
2008/08/20 Javascript
再分享70+免费的jquery 图片滑块效果插件和教程
2014/12/15 Javascript
JavaScript过滤字符串中的中文与空格方法汇总
2016/03/07 Javascript
JS中dom0级事件和dom2级事件的区别介绍
2016/05/05 Javascript
JS控制文本域只读或可写属性的方法
2016/06/24 Javascript
利用jQuery插件imgAreaSelect实现图片上传裁剪(放大缩小)
2016/12/02 Javascript
微信小程序 require机制详解及实例代码
2016/12/14 Javascript
js实现4个方向滚动的球
2017/03/06 Javascript
基于canvas粒子系统的构建详解
2017/08/31 Javascript
vue项目每30秒刷新1次接口的实现方法
2018/12/04 Javascript
JS拖拽排序插件Sortable.js用法实例分析
2019/02/20 Javascript
Vue.js中的组件系统
2019/05/30 Javascript
vue表单数据交互提交演示教程
2019/11/13 Javascript
vue 实现在同一界面实现组件的动态添加和删除功能
2020/06/16 Javascript
原生JavaScript实现购物车
2021/01/10 Javascript
vue二选一tab栏切换新做法实现
2021/01/19 Vue.js
python3.3实现乘法表示例
2014/02/07 Python
基于scrapy实现的简单蜘蛛采集程序
2015/04/17 Python
Python中for循环和while循环的基本使用方法
2015/08/21 Python
python递归打印某个目录的内容(实例讲解)
2017/08/30 Python
使用 Python ssh 远程登陆服务器的最佳方案
2020/03/06 Python
使用Python3 poplib模块删除服务器多天前的邮件实现代码
2020/04/24 Python
django models里数据表插入数据id自增操作
2020/07/15 Python
python按照list中字典的某key去重的示例代码
2020/10/13 Python
简单掌握CSS3将文字描边及填充文字颜色的方法
2016/03/07 HTML / CSS
在css3中background-clip属性与background-origin属性的用法介绍
2012/11/13 HTML / CSS
微软加拿大官方网站:Microsoft Canada
2019/04/28 全球购物
中班幼儿评语大全
2014/04/30 职场文书
党员批评与自我批评发言材料
2014/10/14 职场文书
小学教师2014年度工作总结
2014/12/03 职场文书
网络研修随笔感言
2015/11/18 职场文书
创业方案:赚钱的烧烤店该怎样做?
2019/07/05 职场文书