欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-07-14 11:11:57
...

前言

快速了解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)

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)
除了提取整个标签我们还可以把便签内的各个内容单独提取出来,留待日后
至于网络爬虫的作用,我们可以利用各个网站网页中的内容统计一些数据(比如国内主流网站使用的字符集统计,比如HTML5编码规范的普及率,等等等等),当然网络爬虫应该有更多的作用,我们留待以后慢慢发掘