实践干货,Python爬虫的模拟实践

实践干货,Python爬虫的模拟实践

首页动作格斗爬虫模拟器更新时间:2024-05-10


继前几篇文章大量前期知识的铺垫之后,我们今天来一次模拟实践


在之前的文章当中,我们从如何获取数据解析数据,到储存数据,都一一进行了详细的解释,在这篇文章当中我们将前期所学的知识进行一次实践性的汇总


从URL 开始,和 hashlib 进行访问,然后将解析、获取、压缩、和 Beautiful soup 进行引入 ,将 Redis 存储数据模块进行载入。


一个简单的爬虫程序开头就是如此,具体的代码如下:


from hashlib import SHA1

from urllib.parse import urljoin


import pickle

import re

import requests

import zlib


from bs4 import BeautifulSoup

from redis import Redis


上面这些代码就是上面所说的所有模块引入后的样子。


有了模块代码以后,就可以开始模拟了。


爬虫就是要爬取信息,在目前国内的网站里,知乎就是一个不错的信息网站。(毕竟是国内最大分享故事网站)我们来进行一个知乎问题的爬取代码。

具体的代码如下:


def main():

# 指定种子页面


base_url = 'https://www.zhihu.com/'

seed_url = urljoin(base_url, 'explore')


# 创建Redis客户端

client = Redis(host='8.8.8.8', port=6379, password='qingnian')


# 设置用户代理

headers = {'user-agent': 'baiduspider'}


# 通过requests模块发送GET请求并指定用户代理

resp = requests.get(seed_url, headers=headers)


# 创建BeautifulSoup对象并指定使用RE作为解析器

soup = BeautifulSoup(resp.text, 're')

href_regex = re.compile(r'^/question')


# 将URL处理成摘要

hasher_proto = sha1()


# 查找所有href属性以/question打头的a标签

for a_tag in soup.find_all('a', {'href': href_regex}):


# 获取a标签的href属性值并组装完整的URL

href = a_tag.attrs['href']

full_url = urljoin(base_url, href)


# 传入URL生成SHA1摘要

hasher = hasher_proto.copy()

hasher.update(full_url.encode('utf-8'))

field_key = hasher.hexdigest()


# 如果Redis的键'zhihu'对应的hash数据类型中没有URL的摘要就访问页面并缓存

if not client.hexists('zhihu', field_key):

html_page = requests.get(full_url, headers=headers).text


# 对页面进行序列化和压缩操作

zipped_page=zlib.compress(pickle.dumps(html_page))


# 使用hash数据类型保存URL摘要及其对应的页面代码

client.hset('zhihu', field_key, zipped_page)


# 显示总共缓存了多少个页面

print('Total %d question pages found.' % client.hlen('zhihu'))


if __name__ == '__main__':

main()


上述的代码就是前面的几篇文章所说的所有内容,是不是有一点困惑,没事,一开始的应用总是让人头疼的,我们在今后的学习中,这种代码多得是


知识的学习,在实际的应用当中总是会出现问题,这篇文章主要的意义就是让大家熟悉一下真实的代码是什么样的,最近的文章都是关于爬虫的,所以爬虫是一定会学会并应用的。


如果想学习更多科技知识,可以点击关注


如果对文章中的内容有什么困惑的地方,可以在评论区提出自己的问题,学记同大家一起交流,解决各种问题,一起进步。


青年学记 陪伴着各位青年



作者:青年学记 一名不断进步的程序


一起学习 一起进步


走向自立

查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved