爬虫学习笔记(1)-- 利用Python从网页抓取数据

最近想从一个网站上下载资源,懒得一个个的点击下载了,想写一个爬虫把程序全部下载下来,在这里做一个简单的记录

Python的基础语法在这里就不多做叙述了,黑马程序员上有一个基础的视频教学,可以跟着学习一下

本篇博客为基础章:利用Python从网页端抓取数据,闲话不多说,开始正题:

首先需要学习这几个模块:

1 webbrowser:Python自带的模块,打开浏览器获取到指定的页面

2 requests:从英特网上下载文件和网页

3 Beautiful Soup:解析HTML,即网页编写的格式

4 selenium:启动并控制一个Web浏览器。selenium能够填写表单,并模拟鼠标在这个浏览器上点击

1 webbrowser模块:

可以利用.open()方法打开指定的Url。例如在idea中输入如下代码:

运行Python文件,系统会自动打开一个浏览器,打开百度

2 requests模块:

这是一个第三方模块,需要先从网上下载:

我在Python的运行环境下报错:

切换到cmd环境:

安装成功,在项目中加载requests模块:

示例
这里放两个对于这个模块写的比较详细的Blog:

2.1 快速上手

2.2 用法总结

3 Beautiful Soup模块:

用于从html中提取元素信息

首先安装第三方模块:

在项目中加载

首先在项目中添加名为example的html网页,代码如下:

example
显示效果如下:

示例代码如下:

BeautifulSoup模块
运行结果如图所示:

值得一提的是,一开始在项目运行的时候吗,爆出如下的错误:

解决方法很简单,在调用bs4.BeautifulSoup()函数时添加“html.parser”参数

一些常用的css选择器的模式:

CSS选择器的例子
传递给select()方法的选择器 将匹配为…
soup.select(‘div’) 所有名为<div>的元素
soup.select(‘#author’) 带有id属性为author的元素
soup.select(‘.notice’) 所有使用css class属性为notice的元素
soup.select(‘div span’) 所有在<div>元素之内的<span>元素
soup.select(‘div>span’) 所有直接在<div>元素之内的<span>元素,中间没有其他元素
soup.select(‘input[name]’) 所有名为<input>,并有一个name属性,其值无所谓的元素
soup.select(‘input[type = ‘button’]’) 所有名为<input>,并有一个type属性,其值为button的元素

最后贴一个BeautifulSoup的文档以便参考

4 selenium模块:

该模块可以让Python直接控制浏览器

首先导入模块,方法与之前的略有不同,首先需要下载压缩包,直接运行会报错:

解压后在当前文件夹运行pip install selenium,按住Shift,右键选择在此处打开Powershell窗口

在项目中导入模块,方法较之前几个模块,略有不同,示例代码如下:

selenium
运行时报以下错误:

缺少geckodriver文件,在这里找到对应的版本后,下载之后解压到Python.exe和FireFox所在的文件夹里面即可

打赏 支付宝打赏 微信打赏

未经允许不得转载!

评论列表 0

访客
取消