当前位置: 代码迷 >> 综合 >> 由浅入深:小白爬虫学习之旅(1)
  详细解决方案

由浅入深:小白爬虫学习之旅(1)

热度:21   发布时间:2023-12-01 12:36:35.0

 

目录

 

1.谷歌浏览器开发者模式

2.requests库获取静态网页数据

3.requests库获取动态网页信息

4.urllib获取网页数据


1.谷歌浏览器开发者模式

如何打开:F12/右键检查(或快捷键CTRL+Shift+i)调出

开发者工具最常用的四个功能模块:元素,控制台,源代码,网络.

元素(Elements):用于查看HTML元素

网络(network): 网络页面主要用于查看header等与网络连接相关的信息.

2.requests库获取静态网页数据

requests库

生成请求:

在使用get获得网络请求后会获得一个response对象

response对象的5个属性:

Get 方法获取网上资源的时候会有以下两种状态:

  • 请求头设置

访问网站时如果网站报400的错误,说明网站有反爬虫策略,通常通过设置headers中的USER-Agent解决(header是个字典的形式,里面有Key,和对应的Value值):

  • Timeout设置

目的:避免因等待服务器响应而造成永远失去响应.(设置应该合理,减少等待时间)

  

  • 生成完整的HTTP请求

完整HTTP请求:链接,请求头,超时时间,状态码,正确的编码格式

3.requests库获取动态网页信息

  • 静态网页:网页内容和HTML源码一致
  • 动态网页:网页内容和HTML源码不一致

判断网页类型的方法:

  • 右击,查看网页源代码
  • F12,开发者工具查看源代码

若1,2相同则是静态网页,若1,2不相同则是动态网页       

在网页数据获取前先确定是什么网页类型,动态网页数据获取要找到正确的网页地址.             

4.urllib获取网页数据

  • urllib库

urllib库是python内置的HTTP请求库

urllib库在python2和python3中有所不同

在python2中:import urllib2

在python3中:import urllib.request

  • urllib库爬取一个网页
  • urlopen()方法的参数

用urlopen()方法进行网页页面的爬取

  • urlopen()参数的使用

  1. data参数:

必须是一个bytes对象

必须是标准格式,使用urllib.parse.urlencode()进行格式准换

默认值为None

发送post请求时,data参数必须有

  1. timeout参数:

超时时间

单位为秒

使用代理时,查看代理的状态