python实操之网络爬虫介绍

这篇具有很好参考价值的文章主要介绍了python实操之网络爬虫介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、什么是网络爬虫

网络爬虫,也可以叫做网络数据采集更容易理解。它是指通过编程向网络服务器(web)请求数据(HTML表单),然后解析HTML,提取出自己想要的数据。 它包括了根据url获取HTML数据、解析HTML,获取目标信息、存储数据几个步骤;过程中可能会涉及到数据库、网络服务器、HTTP协议、HTML、数据科学、网络安全、图像处理等非常多的内容。是不是觉得太复杂了,不用担心,对于初学者来说,并不需要全部掌握。

二、为什么需要爬虫

 经常会遇到这一类网页,登录进去后,可以查看到很多有用的数据,但是网页无导出功能,想要下载这部分数据,通常只能手动一点一点去复制,这种方式不仅复制的时候,再粘贴到表格中格式会混乱,要花时间去慢慢调整;其次如果有很多页的数据,还得一页一页翻页复制,其麻烦程度 可想而知。。。

   此时,了解一下python的爬虫,动手write一下,释放生产力。关于爬虫有很多使用的场景,也有很多可以去使用的模块,可以根据具体系统架构和爬取内容情况来适配使用。

三、测试用例

  这里以自己的一个测试系统为例,目标链接有个主机信息的表,但是前提需要登录后才能访问,并且也存在分页的情况,要求是后台获取的内容直接以excel形式保存展示。

python实操之网络爬虫介绍,PYTHON,爬虫,python

四、测试过程

这个简单实例里,主要使用到3个基础模块:

requests:构建请求的相关动作,例如传递登录信息,调测目标网址,保存登录cookie等内容

BeautifulSoup:对获取到html文本内容进行解析,查找里面的表格内容

pandas:对解析后内容,用来存储到目标excel

通常在爬取具体内容数据时,先可以通过F12,查看下网页的源代码,了解下网页的结构,从而设计自己的脚本,上述例子的网页,只是个简单html内容页,有基础的表格属性内容,例如table、tr元素,所以只需要针对这些属性内容,直接匹配获取相应的值即可。

直接上脚本,有相关注释内容,如果有类似场景的可直接用

import requests
from bs4 import BeautifulSoup
import pandas as pd
 
#构建缓存登录的session
url = 'http://XXX.XXX.XXX.XXX:5000/auth/login'
username = 'XXXX'
password = 'XXXX'
# 创建一个session,作用会自动保存cookie
session = requests.session()
data = {
    'username': username,
    'password': password
}
# 使用session发起post请求来获取登录后的cookie,cookie已经存在session中
response = session.post(url = url,data=data)
 
 
#提前创建个空列表来存储数据,方便后面写入excel
data = []
 
###构建目标网页的请求,存在分页的情况,写个循环
url = 'http://192.168.163.134:5000/query/inventory?page={}'
for i in range(1, 5):
        url2 = url.format(i)
        html_content = session.get(url=url2).text
        #print(html_content)
 
        #对获取到html使用BeautifulSoup库解析HTML内容
        soup = BeautifulSoup(html_content, 'html.parser') 
        # 查找解析后表格元素
        table = soup.find('table') 
        # 获取所有行
        rows = table.find_all('tr')
 
         
        # 遍历所有行,并将每行的所有单元格的文本添加到data列表中
        for row in rows:
            cells = row.find_all('td')
            if len(cells) > 1:
                row_data = [cell.text.strip() for cell in cells]
                data.append({
                    "主机IP": row_data[0],  
                    "系统名称": row_data[1],  
                    "系统类型": row_data[2],  
                    "主机分组": row_data[3],  
                    "纳管情况": row_data[4],  
                    "纳管时间": row_data[5],  
                })
 
  
# 输出列表
#print(data)
 
 
# 使用 pandas 将列表转换成 DataFrame
df = pd.DataFrame(data, columns=['主机IP', '系统名称', '系统类型', '主机分组', '纳管情况', '纳管时间'])
# 使用 to_excel 函数将 DataFrame 保存为 excel 文件
df.to_excel("data.xlsx")

五、测试效果

写好的代码,以后随时需要导出数据,执行下py脚本即可,大工告成~

输出的表格效果如下,对比网页展示的内容,完全get:

python实操之网络爬虫介绍,PYTHON,爬虫,python

六、应对反爬几点建议

在写爬虫时,经常会被目标网址禁止爬取内容,那么在写爬虫防止被封有以下几点建议:

1、伪装请求报头

例如伪装成浏览器访问

python实操之网络爬虫介绍,PYTHON,爬虫,python

2、减轻访问频率,速度

例如控制访问频率,加入time.sleep参数

python实操之网络爬虫介绍,PYTHON,爬虫,python

3、使用代理IP

例如加入proxy代理地址,掩藏真实访问地址

python实操之网络爬虫介绍,PYTHON,爬虫,python文章来源地址https://www.toymoban.com/news/detail-810352.html

到了这里,关于python实操之网络爬虫介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 〖Python网络爬虫实战㊶〗- 极验滑块介绍(三)

    订阅:新手可以订阅我的其他专栏。免费阶段订阅量1000+ python项目实战 Python编程基础教程系列(零基础小白搬砖逆袭) 说明:本专栏持续更新中,订阅本专栏前必读关于专栏〖Python网络爬虫实战〗转为付费专栏的订阅说明 作者:爱吃饼干的小白鼠。Python领域优质创作者,20

    2024年02月04日
    浏览(47)
  • python实现网络爬虫代码_python如何实现网络爬虫

    python实现网络爬虫的方法:1、使用request库中的get方法,请求url的网页内容;2、【find()】和【find_all()】方法可以遍历这个html文件,提取指定信息。 python实现网络爬虫的方法: 第一步:爬取 使用request库中的get方法,请求url的网页内容 编写代码[root@localhost demo]# touch demo.py [

    2024年01月20日
    浏览(45)
  • 爬虫python基础介绍

    Python是一种高级编程语言,它被广泛应用于数据分析、人工智能、Web开发等领域。其中,Python的爬虫功能也备受关注。本文将介绍Python爬虫的基础知识、常用库和实战案例,帮助初学者快速入门。 一、Python爬虫基础知识 什么是爬虫? 爬虫是一种自动化程序,它可以模拟人类

    2024年02月06日
    浏览(30)
  • Python爬虫(十九)_动态HTML介绍

    JavaScript是网络上最常用也是支持者对多的客户端脚本语言。它可以收集用户的跟踪数据,不需要重载页面直接提交表单,在页面嵌入多媒体文件,甚至运行网页游戏。 我们可以在网页源代码的 script 标签里看到,比如: jQuery是一个非常常见的库,70%最流行的网站(约200万)和约

    2024年02月09日
    浏览(33)
  • Python爬虫:Selenium的介绍及简单示例

    Selenium是一个用于自动化Web应用程序测试的开源工具。它允许开发人员模拟用户在浏览器中的交互行为,以便自动执行各种测试任务,包括功能测试、性能测试和回归测试等。Selenium最初是为Web应用程序测试而创建的,但它也可用于Web数据抓取和其他自动化任务。 以下是关于

    2024年02月09日
    浏览(38)
  • Python网络通信-python爬虫基础

    1.1、安装requests模块 打开pycharm 安装成功会提示successfully 1.2、发送GET请求 简单请求(以京东举例) 运行结果 添加请求头(以百度举例) 为什么要添加请求头呢,因为有些网页在你请求的时候会检查你是否有请求头,如果没有请求头,就不会返回正常的内容,下面我来验证

    2024年01月24日
    浏览(45)
  • Python网络基础爬虫-python基本语法

    熟悉C/C++语言的人们可能很希望Python提供switch语句,但Python中并没有这个,也没有这个语句结构。但是可以通过if-elif-elif-…这样的结构代替,或者使用字典实现。比如: 这段代码实现的功能是,输入一个运算符,再输入两个数字,返回其计算的结果。比如输入“+12”,

    2024年03月21日
    浏览(41)
  • Python爬虫——Requests库常用方法及参数介绍

    Requests 库中定义了七个常用的请求方法,这些方法各自有着不同的作用,在这些请求方法中 requests.get() 与 requests.post() 方法最为常用。请求方法如下所示: 常用请求方法 方法 说明 requests.request() 构造一个请求对象,该方法是实现以下各个方法的基础。 requests.get() 获取HTML网页

    2024年02月16日
    浏览(43)
  • 【100天精通python】Day41:python网络爬虫开发_爬虫基础入门

    目录  专栏导读  1网络爬虫概述 1.1 工作原理 1.2 应用场景 1.3 爬虫策略

    2024年02月12日
    浏览(45)
  • 一个月学通Python(二十八):Python网络数据采集(爬虫)概述(爬虫)

    结合自身经验和内部资料总结的Python教程,每天3-5章,最短1个月就能全方位的完成Python的学习并进行实战开发,学完了定能成为大佬!加油吧!卷起来! 全部文章请访问专栏:《Python全栈教程(0基础)》 爬虫(crawler)也经常被称为网络蜘蛛(spider),是按照一定的规则自

    2024年02月14日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包