收藏本站
 
设为主页
     您的位置:首页在线课堂高一级2018-2019学年度第二学期 》第五课
==※ 高一级 ※==
2018-2019学年第二学期















==※ 网络资源 ※==
 
太平洋电脑网
天极网
eNet网络学院
 
 
第五课 编写Python爬虫的一些技巧
 
学习目的:了解编写Python爬虫的一些常用技巧,继续项目式学习。
学习重难点学会将编写Python爬虫程序的常用技巧应用于小组的项目学习中。
教学方式:老师辅导;学生自主学习、讨论、进行项目式学习。

学习内容:

提示:以下截图和说明是以谷歌浏览器为参考,其他浏览器也有类似功能,只是界面和名称有一些区别!
 

一、为什么我在网页上看到有数据,但是用requests库取回的内容却没有?
  在一个网页中显示的内容通常由网页html文件、图像文件、css样式表文件、javascript文件、数据文件等组成,当我们输入某个网址或点击链接时,浏览器会自动的获取所有需要的文件,但是我们编写Python爬虫程序爬取数据时,它只会根据提供的URL网址获取单个的文件,所以不一定包含我们想要的数据。
  如果你通过网址能够正常获取到网页html文件,但是却没有包含想要的数据,那一般是数据通过另外的网址获取,然后通过javascript代码动态的显示在网页中的。这时候的关键是获取真正包含数据的URL地址

二、怎么知道访问哪个URL网址才能获取我想要的数据?

方法:通过浏览器的开发者工具(按F12可以打开该工具)

  一般方法:按F12打开开发者工具后,点击相应的链接再次访问数据页面,在开发者工具中找到“Network”(或者是“网络”),其中有显示一个或多个访问地址,依次查看各个地址,确定具体是哪个网址包含我们想要的数据。

三、我获取到了包含真正数据的URL,但是却获取不到数据,为什么?
  这通常是因为服务器有防止爬虫程序的设置,我们可以通过模拟浏览器行为的方式获取到真正的数据。模拟浏览器行为的关键是设置HTTP请求头。重点要注意的HTTP头主要有:HostUser-AgentRefererCookie。在浏览器开发者工具中的“Headers”中可以了解和查看相应的头信息:

四、如何快速了解和测试获取网页数据的方法?

  通过在Python的IDLE交互式编程环境中输入语句可以快速的测试获取网页数据的方法,如下的例子为获取国家统计局数据的基本操作过程:
  其中requests.get()返回的是一个Response对象,该对象的常用属性和方法有:
  status_code:服务器返回代码,200表示成功,其他的一般都有问题。
  encoding:代表返回内容的字符编码,出现乱码时一般为编码识别错误。
  text:获取到的具体内容。
  Python有两个内置的函数非常有用,通过它可以了解变量的类型和对象的属性、方法名,它们分别是type()dir(),如下图所示:
  在IDLE中,我们输入对象名然后输入点(.),这时候等待一会,会显示该对象的所有属性和方法供我们选择,这也是我们快速了解一个类和对象的途径,如下图所示:

五、我获取的数据是JSON格式的,看得我好晕,该怎么分析它们?
  JSON格式的数据具有清晰的层次结构关系,大家可以先了解JSON格数据式的基本规则,然后通过浏览器开发者工具的“preview”选项卡查看分析JSON数据,如下图所示:

* 友情提示:本文档只供本校师生上课时辅助使用,不是正规的教学设计或教案。


 

 

Copyright © 东莞中学信息技术科 All Rights Reserved
IE4.0 or later / 800*600  For The Best View