0


爬虫的三大库

大家好,我是爱吃饼干的小白鼠。大家安装完python的requests,beautifulsoup ,lxml三个库,之后,我们就来说说怎么使用吧。然后我教大家一个简单的爬虫程序。

requests库

requests库的作用就是请求网站获取网页数据的,让我们从最简单的实例说起,requests库的使用方法。

import requests

url='http://www.ceweekly.cn/2022/1017/397973.shtml'
headers={
    'user-agent':' Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'
    }
#发送请求
response=requests.get(url=url)
#输出
print(response)
print(response.text)

程序实现结果如下,<response [200]>表示请求网页成功,若为404,400,则请求失败。

上面的程序我们加入了请求头,这样可以更好的抓取数据。

请求头如下:

headers={
    'user-agent':' Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'
    }

requests库有除了上述的get方法外,还有post方法等。post大多数是需要登录的,不管,get可以爬取大部分网站了。

requests库运行常见报错如下

ConnectionError:网路问题,拒绝连接

HTTPError:response返回了不成功的状态码

Timout:请求超时

TooManyRedirects:请求超过了设定的次数,一般来说,这样是为了反爬而设置的。

BeautifulSoup库

BeautifulSoup库是一个非常流行的模块,它的作用是用来解析requests库请求的网页,并把网页源代码解析为soup文档,以便过滤数据。

import requests
from bs4 import BeautifulSoup
url='http://www.ceweekly.cn/2022/1017/397973.shtml'
headers={
    'user-agent':' Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'
    }
#发送请求
response=requests.get(url=url)
#输出
soup=BeautifulSoup(response.text,'html.parser')
print(soup.prettify())

下面是程序实现结果

虽然看上去和我们第一个差不多,但是通过BeautifulSoup库解析得到的Soup文档是按照标准缩进格式的结构输出的,为后面的数据处理做准备。

BeautifulSoup库除了可以使用文中的html.parser解析器,还可以支持第三方的解析器,比如讲lxml,xml,html5lib解析器。

不管用哪种解析器解析后的soup文档,可以用find(),fing_all()方法定位我们需要的元素,本文篇幅有限,就不说他们的使用方法,我放一个例子吧。

soup.find_all('div',"item")##查找div标签,class="item"

soup.find_all('div',class="item")

soup.find_all('div',attrs={"class":"item"})#attrs参数定义一个字典参数来搜索包含特殊属性的tag

还有一个selector()方法,这个就更简单了,

soup.selector(div.item>a>h1)#在浏览器开发者模式里右击选择copy,会有一个copy selector选项,即可得到

Lxml库

Lxml库比BeautifulSoup库解析速度更快,我这里放一个案例,就不过多解释。

import requests
import lxml
from lxml import etree

url='http://www.ceweekly.cn/2022/1017/397973.shtml'
headers={
    'user-agent':' Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'
    }
#发送请求
response=requests.get(url=url)
#输出
print(response)

今天就说到这里,我们下一期见。


本文转载自: https://blog.csdn.net/BROKEN__Y/article/details/127482417
版权归原作者 爱吃饼干的小白鼠 所有, 如有侵权,请联系我们删除。

“爬虫的三大库”的评论:

还没有评论