Python网络爬虫的实现,要想学编程,首先的把爬虫学好!

Python网络爬虫基础 基础知识讲解部分(网络爬虫入门) 网络爬虫就是自动地从互联网上获取程序。想必你听说过这个词汇,但是又不太了解,大家会觉得掌握网络爬虫还是要花一些功夫的,因此这个门槛让你有点望而却步。我常常觉得计算机和互联网的发明给人类带来了如此大的便利,让人们不用阅读说明书就知道如何上手,但是偏偏编程的道路却又是如此艰辛。因此,我会尽可能做到浅显易懂,希望读者能够读懂我说了什么,从而能够享受到其中的快乐。 基本介... 阅读详情

爬虫实现

1.爬虫初步实现

(1)我们爬取中国化工市场机械网,以下为相关代码演示

import requests
from bs4 import BeautifulSoup
    res = requests.get(addresses[i])
    res.encoding = 'GB18030'  # 通过修改编码方式为GB18030,兼容网站编码(gb2312)
    # 这里的'html.parser'是为了告诉BeautifulSoup这个html_sample的解析形式是html格式#
    soup = BeautifulSoup(res.text, 'html.parser')
    article_content = soup.select(
        '#NewsMainLeft > div.mainBox.MarginTop10.articleBox > div.article > div.ArticleMatter')
    article_title = soup.select(
        '#NewsMainLeft > div.mainBox.MarginTop10.articleBox > div.article > div.articleTitle > h1')

此处select()中的内容,可以使用chrome浏览器的开发者模式,选中该标签,右键copy->copy selector,再复制到select()中,更精确。

利用print()方法可以将爬下来的字段打印出来。

但是只可以爬取单一网址下的内容,如果想批量爬取改网站文章,就需要多次更改爬取的网址,不合理。

(2)我发现有两个办法可以实现批量的爬取

  • 发现网址之间的规律,使用循环每次更改网址,但是使用中发现网址的变化有时会脱离规律,在运行过程中会出现一些错误,因此不推荐使用该方法。
  • 另一种方法是:再爬取网站内的下一篇的<a>标签内的href属性,作为返回值,使用到下一次循环当中。如下代码演示:
    next_address = soup.select(
        '#NewsMainLeft > div.mainBox.MarginTop10.articleBox > div.article > div.arNext > a[href]')

2. 爬取文本初步整理

爬取下来的文本,我发现有一些位置出现不必要的字符、回车等,这些如果无法处理,将影响到后期存储数据,故需要清除,代码如下:

    for s in article_title:
        delete = str(s.contents)
        title = delete.replace('[\'', '').replace('\']', '').replace('\\r', '').replace('\\n', '').replace('\\t', '')\
            .replace('\\', '').replace('/', '').replace(':', '').replace('*', '').replace('?', '').replace('\"', '')\
            .replace('<', '').replace('>', '').replace('|', '')
    for t in article_content:
        delete = str(t.contents)
        context = delete.replace('[\'', '').replace('\']', '').replace('\\r', '').replace('\\n', '').replace('\\t', '')\
            .replace('\\u3000', '').replace('\', <br/>,', '').replace('<br/>, \'', '').replace('<br/>,', '')\
            .replace('<br/>', '').replace('</p>', '').replace('<p>', '').replace(' ', '').replace('\'', '').lstrip('\'')
    title_and_context = title+'。'+context
    if title_and_context[len(title_and_context)-1] == "\'":
        title_and_context = title_and_context[:len(title_and_context)-1] + ''

经过上述处理,文本信息初步处理完毕

文章存储

(1)涉及编码问题,首先,被爬取的网页的编码为gb2312,但是在爬取过程中,如:“槃”字仍无法识别报错,我将爬虫的爬取编码设为gb18030,问题解决。gb18030是gb2312和gbk编码扩大后的编码格式,支持的汉字更多。

(2)数据库也需要设置,通常,mysql默认建立数据库和表的编码是utf-8,在这里,我改成gb18030防止存入数据库时出错.

                    如上图的设置

(3)保存为.txt

# 保存到文本文件当中
def save_files(path, curr_file_name, curr_content):
    if os.path.exists(path):       # 判断文件夹是否存在
        os.chdir(path)             # 进入文件夹
    elif os.getcwd()[-len(path):] == path:
        print("本篇文章已存入")
    else:
        os.mkdir(path)                 # 创建文件夹
        os.chdir(path)                 # 进入文件夹
    f = open(curr_file_name, 'w', encoding='GB18030')
    f.write(curr_content)
    f.close()
    print(os.getcwd())

(4)保存到数据库

  • 建立数据库连接
util.py
import mysql.connector

def get_connect(curr_host, curr_user, curr_passwd, curr_database):
    my_db = mysql.connector.connect(
        host=curr_host,       # 数据库主机地址
        user=curr_user,            # 数据库用户名
        passwd=curr_passwd,           # 数据库密码
        database=curr_database  # 进入数据库
    )
    my_cursor = my_db.cursor()
    return my_cursor, my_db
  • 创建数据库
import mysql.connector
# my_cursor.execute("CREATE DATABASE articles_db")
# my_cursor.execute("USE articles_db")
my_db = mysql.connector.connect(
        host="localhost",       # 数据库主机地址
        user="root",            # 数据库用户名
        passwd="123",           # 数据库密码
        database="articles_db"  # 进入数据库
    )
my_cursor = my_db.cursor()

my_cursor.execute(
     "CREATE TABLE articles_tb (id INT AUTO_INCREMENT PRIMARY KEY, htmlId varchar(255), context MEDIUMTEXT)")
  • 保存到数据库中
# 保存到mysql中
def save_files_to_mysql(curr_file_name, curr_content):
    my_cursor, my_db = util.get_connect("localhost", "root", "123", "articles_db")
    sql_1 = "INSERT INTO articles_tb (htmlId,context)VALUES(\'"
    sql_2 = "\',\'"
    sql_3 = "\')"
    sql = sql_1+curr_file_name+sql_2+curr_content+sql_3
    print("sql:" + sql)
    my_cursor.execute(sql)
    my_db.commit()              # 提交到数据库执行,必须一步勿忘
    my_cursor.close()
    my_db.close

最后,如果你对Python感兴趣,想要学习python,希望可以帮到你,一起加油!以上是给大家分享的Python全套学习资料,都是我自己学习时整理的:                       

 

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

图片

图片

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,还有环境配置的教程,给大家节省了很多时间。

图片

三、全套PDF电子书

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

图片

四、入门学习视频全套

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

图片

图片

五、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

图片

图片

**学习资源已打包,需要的小伙伴可以戳这里:【学习资料】 

Python 网络爬虫进阶教学全指南 本次博客将深入探究 Python 网络爬虫的核心知识与实用技巧,引领大家从入门迈向精通 阅读详情

相关推荐

Python 网络爬虫入门与实战

网络爬虫(Web Crawler)是自动访问网络并提取信息的程序。它可以模拟人类用户在浏览器中的行为,访问网页、抓取数据并存储到本地或数据库中。网络爬虫在信息检索、数据挖掘、搜索引擎等领域有广泛应用。Scrapy 是一个强大的爬虫框架,支持异步处理和数据存储。它适合大型爬虫项目,可以高效抓取和解析数据。yield item通过本文的学习,您应该对 Python 网络爬虫有了全面的了解。从基础的 Requests 库到高级的 Scrapy 框架,再到实战案例,涵盖了网络爬虫的方方面面。

985工科博士毕业,专攻定位、导航和滤波等算法研究。从业10年,主要使用MATLAB 2214

Python网络爬虫实现HTTP请求、解析网页和数据存储(简单静态网页爬取)

Beautiful Soup是一个可以从HTML或XML文件中提取数据的Python库。目前Beautiful Soup 3已经停止开发,大部分的爬虫选择使用Beautiful Soup 4开发。Beautiful Soup不仅支持Python标准库中的HTML解析器,还支持一些第三方的解析器。BeautifulSoup对象表示的是一个文档的全部内容。大部分时候,可以把它当作Tag对象。 BeautifulSoup对象并不是真正的HTML或XML的tag,所以并没有tag的name和attribute属性

Z_CH8648的博客 3720

【基础】【Python网络爬虫】【1.认识爬虫】什么是爬虫,爬虫分类,爬虫可以做什么

认识爬虫 1.什么是爬虫 2.爬虫可以做什么 3.为什么用 Ptyhon 爬虫 4.爬虫的分类 通用爬虫 聚焦爬虫 功能爬虫 增量式爬虫 分布式爬虫 5.爬虫的矛与盾(重点) 6.盗亦有道的君子协议robots 7.爬虫合法性探究

weixin_43612602的博客 2531

一、python网络爬虫的实现

本实验采用python3.6环境 1. 实验目的 掌握爬虫工作的基本原理,并完成一定的任务。 1.1 编写爬虫脚本使其可以工作 1.2 完成批量爬取文本文章的任务(单一网站) 1.3 将文本文章转存到mysql数据库和项目文件夹中 2. 相关知识 2.1 python基础知识学习 python3 字符串基本操作|python3 file操作|python3 os操作 ...

weixin_30907935的博客 116

网络爬虫之必备知识

摘要:本文主要理清网络爬虫的概念,简要讲解爬虫的必备知识,分为python基础、字符编码、http头信息、http状态码、html基础、爬虫职业道德。内容浅显,主要理一理相关知识。一、网络爬虫的概念   网络爬虫,又被称为网页蜘蛛,网络机器人,是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。 通俗的说,我们写爬虫的目的就是自动从不同的网页上提取海量的数据。以下是我之前爬取的部分数据

CaiNiaoWuZui的专栏 5860

Python网络爬虫入门指南

很高兴看到你对网络爬虫和Python的介绍。网络爬虫的确是一个强大且有趣的技术,而Python作为一种简单易学且功能丰富的编程语言,非常适合用于编写网络爬虫。   在本文中,我们将深入探讨Python网络爬虫的基本原理,介绍常用的工具和库,以及通过实战案例来帮助读者入门这个领域。我们将重点介绍如何发送HTTP请求、解析HTML页面、提取所需信息等基本技术,同时也会涉及一些高级的爬虫技术和注意事项。

不迁怒,不贰过。小知识,大智慧。 1999

总结一下五种实现网络爬虫的方法(一,基于socket通信编写爬虫)

最近呢,由于实习需要呢,复习一遍爬虫,前断时间闭关刷题去了,也会把刷题心得总结成博客分享给大家,比如java集合类特性及源码解析,操作系统数据结构的一些算法等,放心,肯定不会鸽的,虽然可能会晚一点写。言归正传,java实现网络爬虫一般有五种方法(据我所知,要是有其他方法的同学欢迎分享)1.基于socket通信编写爬虫:最底层的方式,同时也是执行最高效的,不过开发效率最低。2.基于HttpURLCo...

AaronLin的博客 1万+

如何快速建立一个网络爬虫(初学者指南)

作为一个采集新手,我搭建了一个网络爬虫,成功的从Amazon Career 网站中提取了20000条数据。如何建立一个网络爬虫并导出到数据库,最终可以将数据无成本地转变成你的财富?跟着我我往下看吧。 什么是网络爬虫? 网络爬虫是一种网络机器人,它将互联网上的网页内容进行索引,然后它会自动抓取目标信息和数据。最后,它将数据导出为结构化的格式(列表/表格/数据库)。 ...

网页爬虫与数据采集 · 八爪鱼 1万+

网络爬虫基本原理及实现(简单易懂)

网络爬虫(Web Crawler),也被称为网页蜘蛛(Spider),是一种自动获取网页内容的程序。它的工作原理基于互联网上的超文本传输协议(HTTP)来获取网页资源。

爱吃雪糕的小布丁的博客 4510

Python网络爬虫的设计与实现研究

摘要:随着互联网技术的快速发展,网络爬虫作为获取互联网信息的重要工具,其在数据分析、数据挖掘、自然语言处理等领域的应用越来越广泛。本文首先对网络爬虫的基本原理进行了介绍,然后详细阐述了基于Python的网络爬虫设计与实现过程,包括爬虫架构的选择、网页抓取、数据解析、数据存储等方面。URL管理器负责维护一个待爬取的URL队列,网页下载器负责从URL队列中取出URL并下载对应的网页内容,网页解析器负责对下载的网页内容进行解析和提取所需信息,数据输出器负责将提取的信息以指定格式输出。关键词:Python;

铭渊老黄 2563

Python网络爬虫编程实战

本文还有配套的精品资源,点击获取 简介:Python语言因其简洁易学,是网络爬虫开发的理想选择。网络爬虫广泛用于数据分析、信息挖掘等领域。本课程将从基础开始,指导如何使用Python中的requests、BeautifulSoup、Scrapy等库来实现网络爬虫,以及处理一些高级话题如反爬机制、异步请求和数据存储。学生将通过实践学习构建高效、可控的爬虫。 1. P...

weixin_34618526的博客 2055

Python爬虫

 (1)Python版简单网络爬虫 URLLister类,负责从HTML文本中根据标签提取URL,但也会提取一些垃圾URL,有待改进from sgmllib import SGMLParserclass URLLister(SGMLParser):    def reset(self):                                    

我的程序世界 1万+

Amesim管路仿真进阶:如何用阻力管实现不规则管路的高精度模拟

本文深入探讨了在Amesim仿真中,如何利用阻力管(Orifice with Table)元件,特别是TFORT0子模型,实现对不规则管路的高精度模拟。通过直接输入基于测试或CFD的流量-压降数据,该方法能有效弥补标准管路模型在复杂流道、内部结构复杂等场景下的不足,为液压、热管理等系统仿真提供精准可靠的部件模型。

cicd6pipeline的博客 671

1.认识网络爬虫

1.认识网络爬虫 网络爬虫 爬虫的合法性 HTTP协议 请求与响应(重点) 网络爬虫 爬虫的全名叫网络爬虫,简称爬虫。他还有其他的名字,比如网络机器人,网络蜘蛛等等。爬虫就好像一个探测机器,它的基本操作就是模拟人的行为去各个网站溜达,点点按钮,查查数据,或者把看到的信息背回来。就像一只虫子在一幢楼里不知疲倦地爬来爬去。 你可以这样理解,每个爬虫都是你的分身。就像孙悟空拔了一撮汗毛,吹出一堆猴子一样。 你每天使用的百度,其实就是利用了这种爬虫技术:每天放出无数爬虫到各个网站,把他们的信

weixin_50804299的博客 5万+

高速光耦在隔离串口通信中的选型与优化策略

本文深入探讨了高速光耦在隔离串口通信中的关键作用与选型优化策略。针对串口通信中因普通光耦响应慢导致的误码问题,文章详细分析了响应时间、电流传输比、供电电压与隔离耐压等核心选型指标,并对比了6N137、HCPL-0601等主流型号。同时,提供了电路设计、PCB布局的优化技巧及实用的调试指南,旨在帮助工程师实现高速、稳定的隔离串口通信。

grpc6streamer的博客 322

Spring Authorization Server实战:从零搭建OAuth2.1授权中心(含数据库改造)

本文详细介绍了如何从零开始使用Spring Authorization Server搭建符合OAuth2.1规范的授权中心,并完成关键的数据库持久化改造。内容涵盖微服务架构下的统一认证需求、基础配置、数据库表设计、高级特性(如令牌自定义、性能优化)以及与现有系统(如SSO、Gateway网关)的集成实战,为构建生产级授权服务提供完整指南。

weixin_29315091的博客 253

Python课程设计《网络爬虫-中国大学排名课程设计》

网络爬虫(又称为网页蜘蛛,网络机器人,在FOFA社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。 网络爬虫应用智能自构造技术,随着不同主题的网站,可以自动分析构造URL去重。网络爬虫使用多线程技术,让爬虫具备更强大的抓取能力。对网络爬虫的连接网络设置连接及读取时间,避免无限制的等待。为了适应不同需求,使网络爬虫可以根据预先设定的主题实现对特定主题的爬取。研究网络爬虫的原理并实现爬虫的相关功能,并将爬去

qq_62100487的博客 1万+

R3LIVE 1.0 适配 Velodyne 16线雷达:3步配置解决150米漂移问题

本文详细解析了R3LIVE 1.0适配Velodyne 16线雷达时出现的150米漂移问题,并提供三步配置方案。通过调整雷达类型设置、运动补偿与时间对齐、视觉-激光联合优化等关键参数,有效解决了系统漂移问题,提升定位精度。适用于机器人定位与建图领域的开发者。

weixin_29054195的博客 269

网络爬虫的定义是什么?

网络爬虫的定义是什么?网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟浏览器发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序。原则上,只要是浏览器(客户端)能做的事情,爬虫都能够做。网络爬虫在我们的生活中扮演怎样的角色?在数字化时代,信息如同潮水般汹涌而来。过去,我们可能依赖书籍、报纸或电视来获取信息,但这些渠道的信息量有限,而且筛选过的信息未必能满足我们的需求。如今,互联网为我们提供了海量的信息,但同时也带来了“信息过载”的问题。

logic1001的博客 2345

VSCode+Pyside6开发环境配置全攻略:从安装到实战UI设计

本文提供了一份详细的VSCode与Pyside6集成开发环境配置指南。从创建Python虚拟环境、安装必备VSCode插件,到深度配置PYQT Integration插件以打通Qt Designer与代码编译,最后通过一个待办事项应用实战演示了从UI设计到业务逻辑绑定的完整工作流,旨在帮助开发者建立高效、可维护的GUI开发环境。

qq_27496129的博客 981

kettle实验十一:没有数据流入时停止操作

【实验目的】 1.利用Kettle的“阻塞数据直到步骤都完成”,“检测空流”,“中止”等组件,实现Kettle转换流程的控制。 2.熟练掌握“阻塞数据直到步骤都完成”,“检测空流”,“中止”等组件的使用,实现Kettle转换流程的控制。 【实验原理】 “检测空流”组件可以检测所在转换的输入数据,如果整个转换没有输入数据,通过“中止”组件终止整个转换的流程。在存在数据输入的情况,为了能让数据输出,需要和“阻塞数据直到步骤都完成”配合使用。当所有数据都已经从上个步骤“字段选择”读取完毕后,通过“阻塞数据直到步骤

weixin_44727274的博客 3848

浅谈 Python 网络爬虫的那些事

在大数据、人工智能应用越来越普遍的今天,Python 可以说是当下世界上热门、应用广泛的编程语言之一,在人工智能、爬虫、数据分析、游戏、自动化运维等各个方面,无处不见其身影。随着大数据时代的来临,数据的收集与统计占据了重要地位,而数据的收集工作在很大程度上需要通过网络爬虫来爬取,所以网络爬虫技术变得十分重要。

黛琳ghz的博客,期待你的关注。 6826

Python3 ACM模式输入输出全攻略:从牛客网到华为机试的实战技巧

本文详细解析了Python3在ACM模式下的输入输出处理技巧,针对牛客网、华为机试等在线评测系统。文章从input()函数本质出发,总结了六种高频输入模式的处理模板,并提供了链表、二叉树等数据结构的I/O实战方案,最后给出性能优化与常见避坑指南,帮助开发者高效应对算法笔试。

zero1的博客 998

Python网络爬虫技术

Python网络爬虫作为一种强大的数据获取工具,在数据分析、信息检索、搜索引擎优化等领域发挥着重要作用。然而,在使用爬虫时,我们必须遵守相关法律法规和网站的访问政策,确保数据的合法性和隐私保护。同时,随着技术的不断发展,我们也应积极探索和创新爬虫技术的新应用和新方法。

jun778895的博客 3952

【读代码】SQLBot:开源自然语言转SQL智能助手原理与实践

SQLBot是 DataEase 团队开源的自然语言转 SQL 智能助手,致力于让非技术用户也能通过自然语言与数据库对话,自动生成 SQL 查询,实现自助数据分析、智能BI问答、报表生成等场景。SQLBot 结合了大语言模型(LLM)、数据库元数据解析、SQL解析与执行等多项技术,具备强大的多数据库适配能力和灵活的扩展性。降低数据分析门槛,让业务人员无需掌握SQL即可获取数据洞察支持多种数据库类型,适应企业多样化数据环境提供可扩展的API和插件机制,便于集成到各类BI、数据平台和业务系统。

kakaZhui的博客 829

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

网络爬虫的详细步骤及实现方法

网络爬虫的开发是一个复杂而又有趣的过程,涉及到多个环节和技术要点。通过明确需求、搭建合适的开发环境、制定有效的采集策略、准确解析网页内容、合理存储和管理数据、应对反爬机制以及不断维护和优化爬虫程序,可以构建出高效、稳定且合法的网络爬虫,为数据采集和分析等工作提供有力支持。在实际应用中,还需要根据具体情况灵活运用各种技术和方法,不断探索和创新,以满足不同的业务需求。

A141111111的博客 6117

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

上一篇: Python爬虫常用模块,比较实用!
下一篇: Python基础语法,非常值得新手小白学习!
普通网友
博客等级 码龄2年 529粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值