爬虫笔记day10

本文介绍了如何使用Python和MySQL实现增量爬虫,通过在MySQL中建立指纹表存储已爬取链接,避免重复抓取。针对新更新数据通常出现在前端的特点,爬虫在检测到已爬取链接后会停止后续链接的抓取。步骤包括创建数据库表存储车名,编写爬虫程序连接数据库。部分运行结果显示了增量爬虫的初步效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

增量爬虫Mysql

定义:每次爬取只抓取新更新的链接,之前抓取过的链接不会再继续抓取

实现思路 MySQL:
1、MySQL中新建指纹表,用来存储所有爬取过的链接的指纹
2、在爬取任何链接之前,先判断该指纹是否存在于指纹表,如果已存在则不在进行爬取

注意:
对于常规网站来说,新更新的数据一般会在最前面。比如说新闻类网站(新更新的新闻会在页面顶部)、电商类网站、房产类网站等
所以、一旦检测到有链接已经爬取过的,则无需继续再检测之后的链接,终止程序即可

知识点补充:

1、给url地址进行md5加密生成指纹
from hashlib import md5
s=md5()
s.update(url.encode())
finger=s.hexdigest()

2、pymysql模块执行查询语句后的结果
import  pymysql
cursor.execute('select * from carab')
#fetchall()得到的结果为元祖
result=cursor.fetchall()

步骤:

1、创建数据库表(只爬取车的名字)

CREATE DATABASE cardb CHARSET utf8;
USE cardb;
CREATE TABLE request_finger(
finger CHAR(32)
)CHARSET=utf8;

CREATE TABLE carab(
NAME VARCHAR(100)
)CHARSET=utf8;

2、爬取程序(自行填入自己的数据库密码)

import  urllib.request
import  re
import time
import random
import pymysql
from hashlib import md5
import sys

class CarSpider:
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

废材终结者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值