爬虫——第二篇Requests库

爬虫——第二篇Requests库

爬虫——第二篇Requests库

前言

授人以鱼不如授人以渔,搞清楚爬虫的各个库的作用,可以方便后面我们自己在写爬虫时可以举一反三,所以磨刀不误砍柴工,各位看官修炼屠龙术时,必须要经历的过程。

环境

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一下。

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容