首页 > 编程语言 >初学者怎么学习Python?Python学习从什么开始?

初学者怎么学习Python?Python学习从什么开始?

时间:2024-03-30 11:32:37浏览次数:32  
标签:title Python 爬虫 replace 学习 初学者 requests

学习Python,可以先从Python爬虫开始哈

首选,爬虫并不是网上传言的那样,动不动就面向铁窗编程等,正规的爬虫还是相当有市场的!!!

而 Python 作为入门简易的语言,语法也相当简洁,用来入门爬虫再好不过了!

学习Python爬虫需要一定的计划和步骤,以下是一个简单的学习计划:

  1. 学习Python基础知识:首先需要学习Python的基础知识,包括语法、数据类型、函数、模块等。可以通过在线教程或者相关书籍进行学习。

  2. 学习网络编程基础:爬虫的核心是网络编程,需要了解HTTP协议、URL解析、请求库、响应库等相关知识。推荐使用Python内置的requests库进行网络请求。

  3. 学习HTML/CSS解析:爬虫需要解析网页内容,因此需要学习HTML/CSS的相关知识。可以使用Python内置的BeautifulSoup库进行HTML/CSS解析。

  4. 学习数据存储:爬虫获取的数据需要进行存储和管理,可以使用数据库(如MySQL)或者文件(如CSV、JSON)进行存储。

  5. 实践项目:通过实践项目来巩固所学知识,可以选择一些简单的爬虫项目进行练习,例如爬取某个网站的信息并进行分析。

  6. 不断学习和提高:爬虫技术在不断发展变化,需要不断学习和跟进最新的技术和工具,例如Scrapy框架、Selenium等。

除了计划,还需要一定的学习步骤

  • 学习 Python 基础知识:了解 Python 的基本语法、数据类型、流程控制等基础知识。

  • 学习 requests 库:掌握 requests 库的使用,包括发送 HTTP 请求、获取响应内容等。

  • 学习 Beautiful Soup 或 lxml 等库:掌握 Beautiful Soup 或 lxml 等库的使用,包括解析 HTML、提取信息等。

  • 实践项目:通过实践项目来巩固所学知识,例如爬取某个网站的数据、分析网页结构等。

  • 学习数据库和文件操作:了解数据库和文件操作相关知识,以便将爬取的数据保存到本地文件或数据库中。

兵马未动,粮草先行。

我们有了计划和学习步骤之后,就可以着手完成一个个小项目了

一个简单的实战例子

import requests
from bs4 import BeautifulSoup

url = 'https://www.baidu.com'
response = requests.get(url)
html = response.text
soup = BeautifulSoup(html, 'html.parser')
title = soup.title.string
print(title)

当然,从总的爬虫流程来看,爬虫主要分为三部分,请求、解析和存储

1、发送请求

使用 Python 的 requests 库发送 HTTP 请求,获取网页内容。

import requests

url = 'https://www.baidu.com'
response = requests.get(url)
html = response.text
print(html)

2、解析 HTML

使用 Beautiful Soup 或 lxml 等库解析 HTML,提取出需要的信息。

from bs4 import BeautifulSoup

html = """
<div>
  <h1>百度一下,你就知道</h1>
  <p>百度一下,全球最大的中文搜索引擎、致力于让网民更便捷地获取信息,找到所求。</p>
</div>
"""
soup = BeautifulSoup(html, 'html.parser')
title = soup.title.string
print(title)

3、存储数据

将提取的数据保存到本地文件或数据库中。

import json

data = {
    'title': '百度一下,你就知道',
    'description': '百度一下,全球最大的中文搜索引擎、致力于让网民更便捷地获取信息,找到所求。',
    'link': 'https://www.baidu.com'
}
with open('data.json', 'w') as f:
    json.dump(data, f)

再来来看一个实战例子

众所周知,B站是用来学习的,下面咱们就通过B站来学习~小美女美照的抓取!

废话不多说,直接开干

网页分析

首先咱们先来分析B站网页,现在B站的搜索框里键入我们的关键词

然后我们点击下一页,通过浏览器的 F12 来查看网络请求

网络请求比较多,不过这都难不倒我们老司机了,咱们一眼就定位到了对应的请求

把上面的请求 URL 复制到 postman 当中,直接 send 一下试试

也是没有问题的,那么下面就是来编写代码了。

对于基础代码,咱们可以直接使用 postman 的提示代码

postman 还是很强大,也深知咱们用户的想法,哈哈哈!

import requests

url = "https://api.bilibili.com/x/web-interface/search/type?page=2&page_size=42&platform=pc&keyword=%E5%B0%8F%E7%BE%8E%E5%A5%B3&qv_id=RdBSJVPTX7sckeQMETPhzRB7aqKqU5rk&ad_resource=5654&source_tag=3&search_type=video&dynamic_offset=30"

payload={}
headers = {}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)

编写代码

下面就是改编代码了,我们只需要调整 page 参数,然后再解析响应消息体即可

def fire():
    uri = "https://api.bilibili.com/x/web-interface/search/type?page=current_page&page_size=42&platform=pc&keyword=%E5%B0%8F%E7%BE%8E%E5%A5%B3&qv_id=RdBSJVPTX7sckeQMETPhzRB7aqKqU5rk&ad_resource=5654&source_tag=3&search_type=video&dynamic_offset=30"
    for i in range(1, 25):
        url = uri.replace("current_page", str(i))
        response = requests.request("GET", url, headers=headers, data=payload)
        datas = response.json()
        titles, hrefs = get_hrefs(datas)
        download_pic(titles, hrefs)

通过 for 循环来请求 api 地址,再把拿到的响应数据传递给另外两个函数,分别处理响应数据和保存图片。

再来看看下载图片的代码

    for i in range(len(hrefs)):
        title_t = titles[i].replace('/','').replace(',','').replace('?','')
        title_t = title_t.replace(' ','').replace('|','').replace('。','')
        title_t = title_t.replace('<emclass="keyword">小美女<em>', '')
        title_t = title_t.replace('【', '')
        title_t = title_t.replace('】', '')
        title_t = title_t.replace('*', '')
        filename = '{}{}.jpg'.format(path,title_t)
        with open(filename, 'wb') as f:
            req = requests.get(url=hrefs[i], headers=headers)
            f.write(req.content)
            time.sleep(random.uniform(1.5,3.4))

主要是处理 title 当中的特殊字符

最终效果如下

好了,这就是今天分享的全部内容,喜欢就点个赞吧~


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

标签:title,Python,爬虫,replace,学习,初学者,requests
From: https://blog.csdn.net/bagell/article/details/137080488

相关文章

  • Python判断语句
    (一)布尔类型和比较运算符1.布尔类型的字面量:True表示真(是、肯定)、False表示(否、否定)2.定义变量存储布尔类型数据:变量名称=布尔类型字面量3.比较运算符:布尔类型的数据,不仅可以通过定义得到,也可以通过比较运算符进行内容比较得到。运算符:“==”、“!=”(是否不相等)、“>”......
  • 神经网络与深度学习 Chapter2 线性分类与感知机
    Chapter2线性分类与感知机2.1线性回归线性回归定义:利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。线性回归要素:训练集(或训练数据),一般记为x......
  • Python实现反爬虫
    环境Python3.12安装fastapipipinstall"fastapi[all]"代码fromfastapiimportFastAPI,Responsefromfastapi.responsesimportFileResponseapp=FastAPI()@app.get('/')defindex():resp=FileResponse('data.gz')res......
  • Git学习记录(一):安装与配置
    Git安装:Linux系统自带:终端中输入git即可Windows系统安装:git下载:https://git-scm.com/download/win将git添加至环境变量git--version查看git版本Git配置:gitconfig--global--list 用于查看git配置信息,主要包括邮箱email和姓名namePSC:\Users\qiyh>gitconfi......
  • 深度学习-卷积神经网络--Unet训练推理-60
    目录网络结构importtensorflowastfimportosimportsysimportnumpyasnpfromtqdmimporttqdmfromitertoolsimportchainfromskimage.ioimportimread,imshowfromskimage.transformimportresizeimportrandomimportmatplotlib.pyplotaspltpri......
  • hatch python 现代项目管理工具
    hatchpython现代项目管理工具,以下是一些简单试用安装clibrewinstallhatch一些推荐配置这样我们的venv直接在执行目录中,比较方便使用hatchconfigsetdirs.env.virtual.hatch简单项目clihatchnewdalongdemo......
  • 3.29代码任务对基本字符运用学习适合小白
    packageday1.one;publicclassVariableDemo2{publicstaticvoidmain(String[]args){//目标掌握基本数据类型使用//1.byteshortintlongbytea=127;//byteab=128;//越界了只能表示-128到127shorts=132......
  • 图像分类实战:深度学习在CIFAR-10数据集上的应用
    1.前言        图像分类是计算机视觉领域的一个核心任务,算法能够自动识别图像中的物体或场景,并将其归类到预定义的类别中。近年来,深度学习技术的发展极大地推动了图像分类领域的进步。CIFAR-10数据集作为计算机视觉领域的一个经典小型数据集,为研究者提供了一个理想的......
  • 基于深度学习的生活垃圾智能分类系统(微信小程序+YOLOv5+训练数据集+开题报告+中期检查
    摘要    本文基于Python技术,搭建了YOLOv5s深度学习模型,并基于该模型研发了微信小程序的垃圾分类应用系统。本项目的主要工作如下:    (1)调研了移动端垃圾分类应用软件动态,并分析其优劣势;分析了深度学习在垃圾分类领域的相关应用,着重研究了YOLO系列的工作原理和......
  • 基于深度学习的OCR,如何解决图像像素差的问题?
    基于深度学习的OCR技术在处理图像像素差的问题时确实面临一定的挑战。图像像素差可能导致OCR系统无法准确识别文本,从而影响其精度和可靠性。尽管已经有一些方法如SRN-Deblur、超分SR和GAN系列被尝试用于解决这个问题,但效果并不理想。然而,这并不意味着这个问题无解。以下是一......