快速了解Python语言和网络爬虫,实例讲解(2)

快速了解Python语言和网络爬虫,实例讲解(2)

  • 前言
  • requests库
  • requests库前期准备
  • 使用requests
  • requests,自定义http报文头
  • requests,关于字符集
  • 现在我们来讨论一下我们获取了网页干什么
  • 后言及BeautifulSoup4
  • 例子

前言

快速了解Python语言和网络爬虫,实例讲解(1):https://blog.csdn.net/PxFuture/article/details/101881023

requests库

requests库作为三方的库,至于它的好处和优点我全不知道,目测应该比原版的好用就对了2333

requests库前期准备

注意:此过程可能需要重复多次才可成功若反复失败可以考虑科学上网
首先如果你第一次使用Python 建议你赶紧去安装pip,这样就可以便捷的安装各种丰富的第三方库,至于怎么装emmm,百度:Python安装pip。
安装PIP之后使用下面的命令安装requests
pip install requests //具体什么情况自己看着办吧,因为我已经装过了
pip是控制台命令(系统控制台) 安装了pip后控制台自然可以使用

使用requests

据说requests会自动设置一些东西,结果我用起来发现。。。百度百度不出来,字符集字符集设置不对。。。也有可能是我网页头字符集格式写错了

import requests
#我发现一些网站对这种方式爬虫进行了处理
url="http://yearagain.com"
data=requests.get(url)
print(data.text)

快速了解Python语言和网络爬虫,实例讲解(2)_第1张图片

requests,自定义http报文头

这里headers的格式是 {‘属性名’:‘内容’,‘属性名2’:‘内容’}

import requests
#我发现一些网站对这种方式爬虫进行了处理
url="https://www.baidu.com"
headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.108 Safari/537.36'}
data=requests.get(url,headers=headers)
#这次成功读到了百度的内容,虽然requests库已经封装了一些操作,但有时不太好用
print(data.text)

requests,关于字符集

我百度了一下,requests自动获取字符集确实会出现很多问题
req=requests.get(url)
req.encoding = ‘utf-8’ #就这样设置字符集,至于怎么自动获得网页的正确字符集,因为篇幅太长请自行百度。

现在我们来讨论一下我们获取了网页干什么

到目前为止我们好像光秃秃的获得了一个html,我们没必要这么麻烦 我们只需要打开一个游览器,单击右键查看源代码,即可看到大部分网页的源代码,不用担心屏蔽和字符集的问题。
所以说网络爬虫究竟有什么用呢,我们除了要成功的获取web我们还要对web进行解析。这里最原始的方法是使用正则表达式至于怎么用。。。。

后言及BeautifulSoup4

由于我最近准备从windows平台全面转移到linux平台,遇到了很多问题,所以这系文章可能暂不更新了,下面举个简单的例子我们把html中所有的a标签提取出来
我们需要准备的是
pip install BeautifulSoup4 #这个库封装了一些功能便于我们解析html
还要安装解析器
pip intall lxml #解析器有很多种,Python自带了一种叫:html.parser

例子

第二行的from应该是类似命名空间之类的声明,具体的我不了解
最后两行我们通过BeautifulSoup对解析html做了个简单的举例,这里’lxml’是解析器参数 前文说过有不同的解析器可供选择,这里推荐用lxml就好。

import requests
from bs4 import BeautifulSoup
url="https://www.baidu.com"
headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'}
data=requests.get(url,headers=headers)
data.encoding='utf-8'
soup=BeautifulSoup(data.text,'lxml')
print(soup.find_all('a'))

快速了解Python语言和网络爬虫,实例讲解(2)_第2张图片
除了提取整个标签我们还可以把便签内的各个内容单独提取出来,留待日后
至于网络爬虫的作用,我们可以利用各个网站网页中的内容统计一些数据(比如国内主流网站使用的字符集统计,比如HTML5编码规范的普及率,等等等等),当然网络爬虫应该有更多的作用,我们留待以后慢慢发掘

你可能感兴趣的:(IT教程)