常用轮子:爬虫基本功能

网络爬虫 - scrapy入门(十三) scrapy入门知识 阅读详情
import requests
import re
from bs4 import BeautifulSoup
import pandas as pd
import csv 
import os

class Class_Util_Spider():
    def __init__(self):
        pass

    # 获取子链接
    def get_child_links(self,base_url):
        """
        功能:获取url界面上的所有子链接
        输入:
            url:网址
        输出:
            folder_links:列表,每个元素是一个子url地址
        """
        child_links = []
        # 获取网页源码
        html_text = requests.request("GET",base_url).text
        _links_ = re.findall('<a href="(.*?)/">',html_text)
        for _link_ in _links_:
            link = base_url + "/" + _link_
            child_links.append(link)
        return child_links

    # 获取孙链接
    def get_grandson_links_names(self,url_path_list,text_path):
        """
        功能:解析url界面,获取python包的名称与下载路径
        参数:
            url_path_list:列表,每个元素是一个网页地址,对应于清华镜像的一个python包文件夹
            text_path:txt文件的路径,用于存储python包的名字和下载路径,以逗号分隔

        输出:
            text 文件,每行包含两个元素[name,link],
                -name:python包的名字
                -link:python包的完全下载路径
        """
        file = open(text_path,"w")
        for i,url_path in enumerate(url_path_list):
            print(f"{i}/{len(url_path_list)}",url_path)
            html_text = requests.request("GET",url=url_path).text # 源码解析
            package_links = re.findall('<a href="../../(.*?)"',html_text)# 找到链接
            package_names = re.findall('>(.*?)</a>',html_text) # 找到文件名

            # 将链接和文件名写入csv文件
            for link,name in zip(package_links,package_names):
                link = "https://pypi.tuna.tsinghua.edu.cn/" + link # 链接拼接完整
                file.write(str(name +",,,"+link+"\n"))# 写入
        file.close()

    # 从txt读取文件,转为列表,列表中的每个元素是一个元素对。
    def read_txt_2_list(self,txt_path):
        assert os.path.exists(txt_path)
        txt_file = open(txt_path,"r")
        data_list = []
        for data in txt_file.readlines():
            data = data.strip("\n")
            data_list.append(data)
        txt_file.close()

        return data_list

    # 下载文件
    def download_file(self,save_dir,save_name,download_address,save_dir_his):
        assert os.path.exists(save_dir)

        save_path = os.path.join(save_dir,save_name)
        save_path_old = os.path.join(save_dir_his,save_name)
        if ((not os.path.exists(save_path)) and (not os.path.exists(save_path_old))):
            save_content = requests.get(download_address).content
            with open(save_path,"wb") as f:
                f.write(save_content)
            print(f"Success downloaded {save_name}")
        else:
            print(f"{save_name} Existed!")


    # def get_links(self,url,csv_path):
    #     links = []
    #     csv_file = open(csv_path,"w")
    #     csv_writer = csv.writer(csv_file)

    #     # 获取网页源码
    #     html_text = requests.request("GET",url).text
    #     _links_ = re.findall('<a href="(.*?)/">',html_text)
    
    #     for _link_ in _links_:
    #         link = url + "/" + _link_
    #         links.append(link)
    #         csv_writer.writerow([link])
    #     csv_file.close()

    #     return links

    # def get_package_links_names(self,url_path_list,csv_path):
    #     """
    #     功能:解析url界面,获取python包的名称与下载路径
    #     参数:
    #         url_path_list:列表,每个元素是一个网页地址,对应于清华镜像的一个python包文件夹
    #         csv_path:csv文件的路径,用于存储python包的名字和下载路径

    #     输出:
    #         csv 文件,每行包含两个元素[name,link],
    #             -name:python包的名字
    #             -link:python包的完全下载路径
    #     """
    #     csv_file = open(csv_path,"w")
    #     writer = csv.writer(csv_file)
    #     writer.writerow(["name","link"])

    #     for i,url_path in enumerate(url_path_list):
    #         print(f"{i}/{len(url_path_list)}",url_path)
    #         html_text = requests.request("GET",url=url_path).text # 源码解析
    #         package_links = re.findall('<a href="../../(.*?)"',html_text)# 找到链接
    #         package_names = re.findall('>(.*?)</a>',html_text) # 找到文件名

    #         # 将链接和文件名写入csv文件
    #         for link,name in zip(package_links,package_names):
    #             link = "https://pypi.tuna.tsinghua.edu.cn/" + link # 链接拼接完整
    #             writer.writerow([name,link])# 写入
    #     csv_file.close()

    
if __name__ == "__main__":
    import requests      # 导入网络请求模块
    # 头部信息
    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) '
                            'AppleWebKit/537.36 (KHTML, like Gecko) '
                            'Chrome/72.0.3626.121 Safari/537.36'}
    proxy = {'http': 'http://117.88.176.38:3000',
            'https': 'https://117.88.176.38:3000'}  # 设置代理ip与对应的端口号
    try:
        # 对需要爬取的网页发送请求,verify=False不验证服务器的SSL证书
        response = requests.get('http://2020.ip138.com', \
                    headers= headers,\
                    proxies=proxy,\
                    verify=False,\
                    timeout=3)
        print(response.status_code)  # 打印响应状态码
    except Exception as e:
        print('错误异常信息为:',e)    # 打印异常信息

        

Python网络爬虫库:simple_spider快速入门指南 在现代数据驱动的世界中,网络爬虫已成为自动化信息采集的重要工具。Python库simple_spider应运而生,提供了一个简单易用的接口,让开发者能够快速构建定制化的网络爬虫。这个章节旨在为读者揭开simple_spider的神秘面纱,介绍它的特点以及如何将它应用于实际的网络数据采集任务中。网络爬虫,又称网络蜘蛛(Web Spider)、网络机器人(Web Robot)或网页追逐者(Web Crawler),是一种自动化浏览互联网并收集特定信息的程序。 阅读详情

相关推荐

Scrapylib-1.6.0:用于网络爬虫的Python库

Scrapylib为数据提取提供了更为直观的API接口,使得开发者可以更专注于提取逻辑而非框架细节。此外,Scrapylib中的数据管道提供了一系列钩子函数,用于数据清洗、验证和持久化处理。# 示例代码:Scrapylib管道中处理数据# 数据预处理逻辑在该管道示例中,方法会在每个Item通过管道时被调用。这为数据处理提供了丰富的操作空间。PEP 8是Python编程语言的编码规范文档,它为Python代码提供了一套清晰的样式和格式指南。

weixin_36012152的博客 1105

爬虫之刃----简化爬虫程序之滚轮子实战(系列三)

前言 这是一些准备工作: 了解整个系列的安排 了解系列二中的爬虫架构 If you have done, that’s cool ! 这篇主要是: 介绍需要的技术栈,需要补的东西请戳官方文档。官贴是专业的! 推荐个人使用的一些库和轮子 OK!Let’s get a new start! 技术栈合集 1. Requests和lxml(主要是tree函数)。Reque

谷震平的专栏 4423

python爬虫实战笔记---以轮子哥为起点Scrapy爬取知乎用户信息

Scrapy入门项目1--爬取知乎用户信息 1.选定起始人:选定一个关注数量或粉丝数量多的大佬 2.获取粉丝和关注列表 3.获取列表用户信息 4.获取每位用户粉丝和关注

Python爬虫Request轮子工具

SuperSpider == 万字长文,建议使用目录点击查阅,有助于高效开发。建议点赞收藏 == 文章目录SuperSpiderRequest抓取思路步骤多级页面数据抓取思路UserAgent反爬处理Cookie反爬Cookie参数使用CookieJar对象转换为Cookies字典requests模块参数总结requests.get()requests.post()request.session()作用与应用场景使用方法responseresponse.text 和response.content的区别:动

weixin_38640052的博客 3259

lerobot VLA--SmolVLA代码的讲解

2.图像resize至正方形224x224,图像长宽比不变,其他区域用黑色补充,标记为mask=1,若占位图像(摄像头缺失),则 创建全-1像素的占位图像 标记为mask=0,image为[1, 3, 512, 512],img_mask为True,masks列表长度为2,img_masks为2,因为我这里两个相机。文本嵌入:通过embed_language_tokens() 被转换为嵌入表示,lang_emb 是语言的嵌入,包含了语言的语法和语义信息。1.像素值[0,1]->[-1,1]

caokaifa的博客 4067

FreeSWITCH视频通话实战:关键配置文件解析与编解码优化

本文详细解析了FreeSWITCH视频通话实战中的关键配置,重点介绍了如何通过修改`conf/vars.xml`和`sip_profiles/internal.xml`文件来启用媒体代理、优化编解码器设置(如H.264和VP8),并解决常见的视频流协商与网络穿透问题,帮助用户快速实现稳定、高质量的视频通话功能。

js777的博客 252

Python爬虫Scrapy轮子工具

Scrapy 万字长文,建议使用目录点击查阅,有助于高效开发。建议点赞收藏 概念 scrapy框架的运行流程以及数据传递过程: 爬虫中起始的url构造成request对象–>爬虫中间件–>引擎–>调度器 调度器把request–>引擎–>下载中间件—>下载器 下载器发送请求,获取response响应---->下载中间件---->引擎—>爬虫中间件—>爬虫 爬虫提取url地址,组装成request对象---->爬虫中间件—>引擎—&gt

weixin_38640052的博客 1064

Rockchip开发系列 - 3.4.GPIO扩展芯片AW95xx和PCA953X(2)

Rockchip开发系列 - 3.3.GPIO扩展芯片AW95xx和PCA953X(2)

fulinux的博客 999

自己造的爬虫的轮子

因为需要爬取数据,所以自己造了个轮子现在把整体框架结构以及要点阐述一下: 1、使用工具 使用了httpclient 4.5进行作为抓取工具而html解析使用JSOUP。 2、整体思路 爬虫的抓取策略要么是用延长时间来躲避追查,要么是用大量的代理IP来躲避追查。由于我的请求数量非常大所以只能用代理IP进行请求。所以首先你需要获得大量的代理池。 代理池的获取方式通

yatsov的博客 726

EtherCAT主站SOEM -- 1 -- SOEM之ethercattype.h文件分析

“ethercattype.h” 文件用于支持 EtherCAT 网络通信,提供了各种类型定义和宏,以便开发者更轻松地开发 EtherCAT 相关应用程序。这些定义包括数据类型、命令类型、状态类型和错误类型,以支持 EtherCAT 通信。根据具体应用需求,还可以调整一些超时和帧长度设置。这些定义用于处理函数调用的结果,如 EC_NOFRAME(没有帧返回)、EC_ERROR(一般错误)、EC_TIMEOUT(请求超时)等。这些定义用于处理 EtherCAT 命令,例如 EC_CMD_APRD(自动递增读取

常驻客栈的博客--嵌入式EtherCAT 2714

【数据分析】比较SparCC、Pearson和Spearman相关性估计方法在合成组学数据上的表现

【数据分析】比较SparCC、Pearson和Spearman相关性估计方法在合成组学数据上的表现

专注生信领域 659

基于Python的网络爬虫总结

从用Anaconda编写简单的爬虫脚本,到用Scrapy爬虫框架编写爬虫项目,最后将Scrapy爬虫框架通过Gerapy进行部署。

qq_57348280的博客 5985

【速通RAG实战:索引】4.RAG文档解析技术

通过本文技术方案,可构建高精准、高效率的文档解析流水线,为 RAG 应用提供坚实的知识底座。核心在于**格式解析的鲁棒性**和**语义分块的准确性**,后续通过持续的性能优化和质量监控,逐步提升索引质量和检索效率。

2025博客之星Top81。专注AI工程化与架构实战。从分布式思维到模型部署,用工程化视角为你厘清AI落地的真实路径。 1545

Python新手学习网络爬虫要做什么?

爬虫,被称为网络机器人,在FOAF社区中间,更经常的称为网页追逐者,是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本,主要用于搜索引擎,它将一个网站的所有内容与链接进行阅读,并建立相关的全文索引到数据库中,然后跳到另一个网站。 传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,再不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。   我们自学一段...

690

Vue3+Openlayers教程导航页【目录】

欢迎来到 Vue3+Openlayers 系列教程,这里是我在 优快云 编写的所有 Vue3+Openlayers 系列相关文章的索引页,适合初学者到进阶用户系统阅读。👀 更多教程正在持续更新中,欢迎关注我,一起探索 Openlayers 的强大魅力!

小彭的博客 1260

Codesys入门-新建工程+任务调用+编译+调试

程序组织单元(Program Organization Unit, POU)由声明区和代码区组成,是用户程序的最小软件单元,它相当于传统编程系统中的块(Block),按功能程序组织单元(POU)可分为函数(FUN)、功能块(FB)、程序(PRG)。:Codesys采用多任务的方式来执行用户程序的“任务”,而每个“任务”分配了不同的执行周期,有些全局变量可能要在不同的POU之间被访问和修改,于是需要对全局变量进行交互同步,也是在任务的“时间对准点”进行的,实例:声明了INT类型,变量名为输入;

刺客 1万+

【进阶】【Python网络爬虫】【15.爬虫框架】scrapy入门(附大量案例代码)(建议收藏)

一、爬虫框架 1. 什么是框架? 2. 初期如何学习框架? 二、scrapy 入门 1. 网络爬虫 请求数据 解析数据 保存数据 2. scrapy安装 安装方式 全局命令 项目命令 案例 - scrapy 下厨房网爬取 settings.py spiders blood.py 案例 - scrapy爬取哔哩哔哩网 settings.py items.py pipelines.py iders libi.py - 基于终端指令的持久化存储(简单)不推荐 libi,py - 基于管道的持久化存储方式(通用)

weixin_43612602的博客 1372

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Java网络爬虫从入门到实战:核心技术+实战案例+避坑指南

网络爬虫(Web Crawler),又称网络蜘蛛、网页蜘蛛,本质是一种自动化程序,模拟浏览器的HTTP/HTTPS请求,向目标服务器发送请求、获取网页内容,再对内容进行解析、提取有价值的数据,最终将数据存储(如数据库、文件)的过程。发起请求:通过Java网络库向目标URL发送HTTP请求(GET/POST为主),获取服务器返回的响应数据(通常是HTML、JSON等格式)。解析响应。

2302_80192044的博客 2502

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

学Python一定要会的网络爬虫程序的基本执行流程

网络爬虫是指在互联网上自动爬取网站内容信息的程序,也被称作网络蜘蛛或网络机器人。大型的爬虫程序被广泛应用于搜索引擎、数据挖掘等领域,个人用户或企业也可以利用爬虫收集对自身有价值的数据。 一个网络爬虫程序的基本执行流程可以总结三个过程:请求数据, 解析数据, 保存数据 请求数据 请求的数据除了普通的HTML之外,还有 json 数据、字符串数据、图片、视频、音频等。 解析数据 当一个数据下载完成后,对数据中的内容进行分析,并提取出需要的数据,提取到的数据可以以多种形式保存起来,数据的格式有非常多种,常见的有c

m0_45983219的博客 2181

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

mysql scrapy 重复数据_NO.1 网络爬虫是什么?「Scrapy网络爬虫系列教程」

网络爬虫是什么? 网络爬虫是指在互联网上自动爬取网站内容信息的程序,也被称作网络蜘蛛或网络机器人。大型的爬虫程序被广泛应用于搜索引擎、数据挖掘等领域,个人用户或企业也可以利用爬虫收集对自身有价值的数据。 举一个简单的例子,假设你在本地新开了一家以外卖生意为主的餐馆,现在要给菜品定价,此时,便可以开发一个爬虫的程序,在美团、饿了么、百度外卖这些外卖网站爬取大量的其他餐馆的菜品价格作为参考,以指导定价...

weixin_26899879的博客 110

mysql scrapy 重复数据_NO.1 网络爬虫是什么?【Scrapy网络爬虫系列教程】

点击上方蓝字,获得更多精彩内容网络爬虫是什么? 网络爬虫是指在互联网上自动爬取网站内容信息的程序,也被称作网络蜘蛛或网络机器人。大型的爬虫程序被广泛应用于搜索引擎、数据挖掘等领域,个人用户或企业也可以利用爬虫收集对自身有价值的数据。 举一个简单的例子,假设你在本地新开了一家以外卖生意为主的餐馆,现在要给菜品定价,此时,便可以开发一个爬虫的程序,在美团、饿了么、百度外卖...

weixin_42127937的博客 89

新手python爬虫是什么意思_Python新手学习网络爬虫要做什么?

爬虫,被称为网络机器人,在FOAF社区中间,更经常的称为网页追逐者,是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本,主要用于搜索引擎,它将一个网站的所有内容与链接进行阅读,并建立相关的全文索引到数据库中,然后跳到另一个网站。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,再不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。我们自学一段时间Python后...

weixin_39927683的博客 155

python网络爬虫

前言 最近工作上因为公司的需求做了一个网络爬虫,因为之前也没有接触过,所以现在记录一下整个爬虫实现的过程,以及对爬虫经验的总结。 1.什么叫网络爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。以上是百度百科的解析,其实简单来说就根据

Mr_chengguosen的博客 972

一篇文章教会你Python网络爬虫程序的基本执行流程

网络爬虫是指在互联网上自动爬取网站内容信息的程序,也被称作网络蜘蛛或网络机器人。大型的爬虫程序被广泛应用于搜索引擎、数据挖掘等领域,个人用户或企业也可以利用爬虫收集对自身有价值的数据。 一个网络爬虫程序的基本执行流程可以总结三个过程:请求数据,解析数据,保存数据 请求数据 请求的数据除了普通的HTML之外,还有 json 数据、字符串数据、图片、视频、音频等。 解析数据 当一个数据下载完成后,对数据中的内容进行分析,并提取出需要的数据,提取到的数据可以以多种形式保存起来,数据的格式有非常多种,..

Python案例分享,B站视频教程:https://space.bilibili.com/523606542 1122

你知道Python爬虫和数据分析有哪些常用的第三方库吗?

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

m0_58477260的博客 3703

这4个数据采集工具支持低代码爬虫

总得来说,对于代码能力不强的童鞋来说,现成的爬虫软件是比较好的选择,直接图形化界面点点点,能避免很多麻烦。而且要主要遵守各网站的规则协议,不能获取非合理数据,这个是底线。

分享Python、数据分析、人工智能前沿知识 2810
上一篇: 常用轮子:文件夹整理
下一篇: 从零搭建本地pypi镜像源1:快速体验
wzg2016
博客等级 码龄10年 539粉丝 493原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值