热门关键字:
jquery > jquery教程 > jquery教程 > Python爬虫入门保姆级教程

Python爬虫入门保姆级教程

259
作者:管理员
发布时间:2021/2/4 18:53:30
评论数:0
转载请自觉注明原文:http://www.jq-school.com/Show.aspx?id=3848
  爬虫就是自动获取网页内容的程序,例如搜索引擎,Google,Baidu 等,每天都运行着庞大的爬虫系统,从全世界的网站中爬虫数据,供用户检索时使用。


  其实把网络爬虫抽象开来看,它无外乎包含如下几个步骤


  模拟请求网页。模拟浏览器,打开目标网站。获取数据。打开网站之后,就可以自动化的获取我们所需要的网站数据。保存数据。拿到数据之后,需要持久化到本地文件或者数据库等存储设备中。


  那么我们该如何使用 Python 来编写自己的爬虫程序呢,在这里我要重点介绍一个 Python 库:Requests。


  Requests 库是 Python 中发起 HTTP 请求的库,使用非常方便简单。


  模拟发送 HTTP 请求


  发送 GET 请求


  当我们用浏览器打开豆瓣首页时,其实发送的最原始的请求就是 GET 请求


  可以看到,我们得到的是一个 Response 对象


  如果我们要获取网站返回的数据,可以使用 text 或者 content 属性来获取


  text:是以字符串的形式返回数据


  content:是以二进制的方式返回数据


  发送 POST 请求


  对于 POST 请求,一般就是提交一个表单


  data 当中,就是需要传递的表单信息,是一个字典类型的数据。


  header 增强


  对于有些网站,会拒绝掉没有携带 header 的请求的,所以需要做一些 header 增强。比如:UA,Cookie,host 等等信息。


  解析 HTML


  现在我们已经获取到了网页返回的数据,即 HTML 代码,下面就需要解析 HTML,来提取其中有效的信息。


  BeautifulSoup


  BeautifulSoup 是 Python 的一个库,最主要的功能是从网页解析数据。


  BeautifulSoup 的一些简单用法


  具体的用法和效果,我会在后面的实战中详细说明。


  XPath 定位


  XPath 是 XML 的路径语言,是通过元素和属性进行导航定位的。几种常用的表达式


  表达式含义node选择 node 节点的所有子节点/从根节点选取//选取所有当前节点。当前节点父节点@属性选取text()当前路径下的文本内容


  一些简单的例子


  当然,XPath 非常强大,但是语法也相对复杂,不过我们可以通过 Chrome 的开发者工具来快速定位到元素的 xpath,如下图


  得到的 xpath 为


  在实际的使用过程中,到底使用 BeautifulSoup 还是 XPath,完全取决于个人喜好,哪个用起来更加熟练方便,就使用哪个。


  我们可以从豆瓣影人页,进入都影人对应的影人图片页面,比如以刘涛为例子,她的影人图片页面地址为


  下面我们就来分析下这个网页


  注意:网络上的网站页面构成总是会变化的,所以这里你需要学会分析的方法,以此类推到其他网站。正所谓授人以鱼不如授人以渔,就是这个原因。


  Chrome 开发者工具(按 F12 打开),是分析网页的绝佳利器,一定要好好使用。


  我们在任意一张图片上右击鼠标,选择“检查”,可以看到同样打开了“开发者工具”,而且自动定位到了该图片所在的位置


  可以清晰的看到,每张图片都是保存在 li 标签中的,图片的地址保存在 li 标签中的 img 中。


  知道了这些规律后,我们就可以通过 BeautifulSoup 或者 XPath 来解析 HTML 页面,从而获取其中的图片地址。


  我们只需要短短的几行代码,就能完成图片 url 的提取


  可以看到,是非常干净的列表,里面存储了海报地址。


  但是这里也只是一页海报的数据,我们观察页面发现它有好多分页,如何处理分页呢。




如果您觉得本文的内容对您的学习有所帮助:支付鼓励



关键字:jquery
友荐云推荐