基于python的爬虫实现

目录

定义

基本原理

应用

例子

time模块

datetime模块

random随机模块

 正则模块


定义

网络爬虫又称网络蜘蛛、网络蚂蚁、网络机器人等,可以自动化浏览网络中的信息,当然浏览信息的时候需要按照我们制定的规则进行,这些规则我们称之为网络爬虫算法。使用Python可以很方便地编写出爬虫程序,进行互联网信息的自动化检索。

基本原理

爬虫的工作原理是通过发送HTTP请求从网页服务器获取的内容,然后解析网页并提取所需的数据。具体步骤如下:

1. 发送HTTP请求:通过爬虫程序发送HTTP请求到目标网站的服务器,请求获取网页的内容。

2. 接收网页内容:爬虫程序接收到服务器返回的网页内容,这通常是HTML、XML或JSON格式的文本。

3. 解析网页:爬虫程序使用解析器(如解析库或正则表达式)对网页内容进行解析,提取出需要的数据,如文本、链接、图片地址等。

4. 数据处理和存储:爬虫程序对提取的数据进行处理,进行清洗、筛选、转换等操作,然后将数据保存到数据库、文件或其他存储介质中。

5. 进行下一步操作:根据需要,爬虫程序可以继续访问其他链接,深入爬取更多的网页内容,或者执行其他相关任务。

应用

爬虫主要应用于数据采集、搜索引擎、监测与分析、推荐系统、自动化任务等领域。通过爬虫,可以自动化地收集互联网上的信息,并进行数据分析和运用,从而为用户提供更丰富的服务和策略。

例子

爬取网页数据,首先分析源码,思考构造什么样的正则表达式

import requests
import re
import time

url = "http://10.9.46.192/spider/"

def get_html(url) :


    res = requests.get(url = url)

    html = res.text
    return html



headers = {
    "User-Agent":   "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.5195.102 Safari/537.36"
}

def get_img_path_list(html) :
    img_path_re = r"style/\w+\.jpg"

    img_path_list = re.findall(img_path_re,html)

    return img_path_list

def download_img(img_path) :
    full_url = url + img_path
    print(f"Image URL: {full_url}")

    res =requests.get(url = full_url)
    img_save_path = f"./img/{time.time()}.jpg"

    with open(img_save_path,'wb') as f:
        f.write(res.content)

html = get_html(url =url)
img_path_list = get_img_path_list(html = html)

for img_path in img_path_list:
    download_img(img_path)

最后将图片下载到img目录下

 爬虫的高效性与python密不可分

进行python开发时,可以使用多种库来进行实现,以下是几种常见的模块

time模块

image.png

datetime模块

image.png

random随机模块

image.png

 注意 :文件名不要用random命名,不然会直接调用

 正则模块

匹配规则

[0-9] 代表匹配所有的0-9数字

[a-z] 代表匹配所有a-z的字符

[A-Z]代表匹配所有A-Z的字符

[^0-9] 代表匹配除了0-9之外所有字符

\d代表数字字符 =0-9

\w代表英文字符 =a-z

\s 代表空白符 以及换行符

\D代表非数字字符

\W代表非单词字符

\S代表非空白字符

.代表任意字符,不包含换行符

^a只能匹配行首的a

a$只会匹配行尾的a

#[a-zA-Z0-9]{6} \b 匹配十六进制颜色

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值