

前言
授人以鱼不如授人以渔,搞清楚爬虫的各个库的作用,可以方便后面我们自己在写爬虫时可以举一反三,所以磨刀不误砍柴工,各位看官修炼屠龙术时,必须要经历的过程。
环境
python3.7,Requests,BeautifulSoup,json,time
库介绍
Requests:requests是一个Python第三方库,用于发起HTTP请求。它可以简化Python程序中的HTTP通信,并提供了一种更加人性化的方式来处理HTTP请求和响应。
发起get请求
import requests
response = requests.get('https://www.baidu.com/')
print(response.text)
添加请求头等参数
import requests
headers = {'User-Agent': 'Mozilla/5.0'}
params = {'key1': 'value1', 'key2': 'value2'}
response = requests.get('https://www.baidu.com/', headers=headers, params=params)
print(response.text)
发起post请求
import requests
data = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('https://httpbin.org/post', data=data)
print(response.text)
BeautifulSoup:BeautifulSoup是一个Python第三方库,用于解析HTML和XML文档。它可以让用户在文档中遍历或搜索树形结构,从而获取所需的信息,在爬虫中使用更多的是它搜索功能。
from bs4 import BeautifulSoup
html_doc = """
<html>
<head>
<title>Test Page</title>
</head>
<body>
<h1>This is a test page.</h1>
<p>This is the content of the test page.</p>
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
</body>
</html>
"""
soup = BeautifulSoup(html_doc, 'html.parser')
# 搜索标签
print(soup.find_all('li'))
# 搜索属性
print(soup.find_all(attrs={'class': 'content'}))
# 搜索文本
print(soup.find_all(text='Item 1'))
json:JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它以易于阅读和编写的文本格式为基础,用于表明结构化的数据。Python中的json库提供了将Python对象转换为JSON格式数据、将JSON格式数据转换为Python对象的功能。我们在进行爬虫的时候,常常会请求一些API接口,然后返回的结果一般都是json字符串,这个时候为了获得这个字符串里面的内容,就需要使用这个库将其转换为json对象,也就是python里面的字典数据结构。
import json
json_data = '{"name": "Bob", "age": 20, "gender": "male"}'
data = json.loads(json_data)
print(data)
time:time是Python内置的一个标准库,用于处理时间相关的操作。它提供了一些函数来获取、格式化和操作时间。time这个库很简单,但是作用却很大,在爬虫过程中,主要有两大功能,第一就是,我们在向服务器发起请求时,常常会由于操作太频繁,会被目标服务器识别为爬虫所为,这个时候就面临封号或者封IP的操作,为了解决这个问题,我们就要模拟人为的操作,使用time库的sleep函数,进行限速控制。第二个作用,就是爬取的时间数据,需要进行格式化。
作用一:
import time
print('Start')
time.sleep(5)
print('End')
作用二:
import time
timestamp = time.time()
local_time = time.localtime(timestamp)
formatted_time = time.strftime('%Y-%m-%d %H:%M:%S', local_time)
print(formatted_time)
好了,各位看官,今天的爬虫库就先介绍到这里,下一篇会根据本篇讲解的爬虫库,进行实战——爬取百度地图的街景数据,如果各位看官有兴趣,可以follow一下。


















暂无评论内容