赞
踩
(1)程序下载
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
(2)安装并配置虚拟环境
conda create --name Crawler python=3.10
(3)Anaconda conda 切换为清华源
# 命令行中直接使用以下命令
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
# 设置搜索时显示通道地址
conda config --set show_channel_urls yes
(1)程序下载
https://www.jetbrains.com/pycharm/download/
(2)创建项目
https://www.cnblogs.com/yuxuefeng/articles/9235431.html
(3)使用虚拟环境Crawler的编译器
https://www.cnblogs.com/mengxiaoleng/p/11745897.html
(4)测试
print(“hello world!”)
略
https://www.cnblogs.com/doraman/p/11623455.html
https://www.cnblogs.com/haishiniu123/p/7125677.html
conda install requests
conda install beautifulsoup4 lxml
conda install PyMySQL
conda install DBUtils
conda install redis
https://www.runoob.com/html/html-tutorial.html
import pymysql # 打开数据库连接 IP USER PASSWORD DBNAME #db = pymysql.connect("localhost", "root", "123456", "test") db = pymysql.connect(host="localhost", user="root", password="123456", database="test") # 使用 cursor() 方法创建一个游标对象 cursor cursor = db.cursor() # 使用 execute() 方法执行 SQL 查询 cursor.execute("SELECT VERSION()") # 使用 fetchone() 方法获取单条数据. data = cursor.fetchone() print("Database version : %s " % data) cursor.close() # 关闭数据库连接 db.close()
8.1创建数据库表
import pymysql # 打开数据库连接 db = pymysql.connect("localhost", "root", "123456", "test") # 使用 cursor() 方法创建一个游标对象 cursor cursor = db.cursor() # 使用 execute() 方法执行 SQL,如果表存在则删除 cursor.execute("DROP TABLE IF EXISTS EMPLOYEE") # 使用预处理语句创建表 sql = """CREATE TABLE EMPLOYEE ( FIRST_NAME CHAR(20) NOT NULL, LAST_NAME CHAR(20), AGE INT, SEX CHAR(1), INCOME FLOAT )""" cursor.execute(sql) cursor.close() # 关闭数据库连接 db.close()
8.2 新增数据
import pymysql # 打开数据库连接 db = pymysql.connect("localhost", "root", "123456", "test") # 使用cursor()方法获取操作游标 cursor = db.cursor() # SQL 插入语句 sql = """INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) VALUES ('Mac', 'Mohan', 20, 'M', 2000)""" try: # 执行sql语句 cursor.execute(sql) # 提交到数据库执行 db.commit() except: # 如果发生错误则回滚 db.rollback() # 关闭数据库连接 db.close()
redis的安装(msi),不用设置密码
https://blog.csdn.net/weixin_44893902/article/details/123087435
https://github.com/tporadowski/redis/releases/download/v5.0.14.1/Redis-x64-5.0.14.1.msi
import redis # 导入redis 模块 pool = redis.ConnectionPool(host='localhost', port=6379, decode_responses=True) r = redis.StrictRedis(connection_pool=pool) r.sadd('urls_page_new', 'url1')#待爬取页 r.sadd('urls_page_new', 'url2') r.sadd('urls_page_new', 'url3') r.sadd('urls_page_new', 'url4') res = r.smembers('urls_page_new') print(res) # 元素个数 print(r.scard('urls_page_new')) # 随机删除:spop key #print(r.spop('urls_page_new')) # 打印删除的值 s = r.spop('urls_page_new') res = r.smembers('urls_page_new') print(res) r.sadd('urls_page_old', s)#已经爬取页 res = r.smembers('urls_page_old') print(res) #查找某个元素在不在 print(r.sismember('urls_page_new','url1')) # 查看所有的key:keys * print(r.keys()) r.delete('urls_page_new') r.delete('urls_page_old')
https://dblab.xmu.edu.cn/blog/3848/
以下是一些知名的商业爬虫软件:
八爪鱼:国内知名度极高的一款网络爬虫软件,以其易用性和丰富的功能著称,提供模板采集、智能采集以及云采集等多种模式,适用于不同行业和场景。
神箭手云爬虫:提供云服务的爬虫平台,支持用户通过云端配置和执行爬虫任务,具有分布式采集能力,便于大规模数据抓取。
火车采集器:功能强大的网页数据抓取工具,适用于各种规模的数据采集项目,尤其在处理复杂结构网页和大规模数据时表现出色。
Scrapinghub:Scrapinghub提供了一系列爬虫服务,SpiderCloud用于构建和管理分布式爬虫,Portia 则是一个可视化爬虫工具,允许用户无需编码即可创建爬虫规则。
Mozenda:Mozenda提供了一套完整的网页数据提取解决方案,用户可以通过其提供的可视化界面来设计爬虫流程。
Diffbot:Diffbot提供API形式的爬虫服务,专注于结构化抽取网页数据,特别在处理新闻文章、产品详情和其他标准化数据方面有独特优势。
Apify:Apify是一个基于云计算的爬虫服务平台,拥有可视化爬虫构造器和SDK以供开发者自定义爬虫逻辑。
这些商业爬虫软件通常提供了更为稳定的性能、更高级的功能支持,如反反爬机制、IP代理池管理、数据清洗和存储集成等功能,并且有专门的技术支持和服务团队协助解决使用过程中遇到的问题。
1、爬虫的基本原理?
爬虫的基本原理是在遵循相关法律法规和网站规则的前提下,通过程序模拟用户浏览器发送HTTP请求访问网页,获取服务器返回的响应数据(如HTML、JSON等),并进一步解析这些数据以提取有价值的信息,可用于数据分析、存储或其他用途。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。