首页 > 编程语言 >全网最详细爬虫教学-刚学Python也行-方法详解-看我这篇就够了-第一节

全网最详细爬虫教学-刚学Python也行-方法详解-看我这篇就够了-第一节

时间:2024-08-30 15:50:29浏览次数:9  
标签:网页 encoding Python res 刚学 爬虫 text import requests

        前言

        很多人一听到爬虫脑子里就想到黑客,顶级程序员等。但其实爬虫不难,今天,我就来教大家快速入门爬虫。

       requests库

        说到爬虫,就不得不提request库了,它能提取静态网页源码(静态网页!!!),例如百度就是个静态网站 ,实战演练一下。 

import requests
head = {
    "User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11"
}# 设置请求头,模拟浏览器

url = "https://www.baidu.com"
# 请求网页
res = requests.get(url, headers=head)
res.encoding = res.apparent_encoding  # 设置编码格式
# print(res)  # 查看状态码
#print(res.text)  # 查看网页HTML代码
  # 解析网页
name = "read.html"
with open(name,"a", encoding="UTF-8") as f:
    f.write(res.text)


        运行一下代码就可以将百度的源码爬到并生成对应的HTML文件。

代码详解

        1.导库

                import requests

                不用说,导库。顺嘴提一句,尽量用import + 库名,不要用from+ 库名+ import*虽然方便不用再调入函数时加库名,但仍然会造成函数冲突

        2.请求头
head = {
    "User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11"
}# 设置请求头,模拟浏览器

          众所周知,很多网站都是反爬网站,所以这时候就要用请求头了。请求头的目的就是模拟浏览器,让反爬网站发现不了你是机器。

        3.正式代码

         res = requests.get(url, headers=head)
         res.encoding = res.apparent_encoding  # 设置编码格式

        得到代码有关信息。

        res.text就是网页源代码

with open(name,"a", encoding="UTF-8") as f:
    f.write(res.text)

        用with open()函数将源代码写入空文件read.html,a是追加写,w是覆盖写,r是只读

bs4库

        这个较为简单

        简单过一下,全称美丽的汤(beautifulsoup),负责解析网页。如

soup = bs4.BeautifulSoup(res.text, "lxml")  # 解析网页
tags = soup.find_all("a", class_="tit")

                将上面爬到的源代码进行分析,第一行不要动,第二行看具体网页。例如我们想爬取百度首页的头条。

        1.打开浏览器,来到百度,按F12,鼠标移到头条,右键点检查,即可发现这个:

<span class="title-content-title">关于未成年人,这一重磅报告发布</span>

        2.把代码改成tags = soup.find_all("span", class_="title-content-title")

        3.输出爬取内容:

for t in tags:
    print(t.text)

         这就是bs4的知识点。接下来,是爬取百度热搜的完整代码:

        

import requests
import bs4
import time
head = {
    "User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11"
}# 设置请求头,模拟浏览器

url = "https://www.baidu.com"
# 请求网页
res = requests.get(url, headers=head)
res.encoding = res.apparent_encoding  # 设置编码格式
soup = bs4.BeautifulSoup(res.text, "lxml")  # 解析网页
# 选取数据
tags = soup.find_all("span", class_="title-content-title")

# 展示结果
for t in tags:
    print(t.text)
#So easy

        那么到现在,你的爬虫技术应该已经超过了大多数人。接下来,以此类推,关于如何爬取音乐,其实很简单,你爬到的音乐标签页会有音乐的网址,直接爬到后用同样步骤,将十六进制数放入xxx.mp3,这样就能获得音频了。这里也分享一个使用小技巧,如何快速获得音乐的对应网址呢?播放音乐,F12,点击"网络" -> "媒体"->ctrl+R刷新后单击音频文件就能找到对应网址了。

END

        肝死我了,点个关注吧,感谢你能看到这。点赞过二十,出下一节。

标签:网页,encoding,Python,res,刚学,爬虫,text,import,requests
From: https://blog.csdn.net/nztjdjxgxuhss/article/details/141675711

相关文章

  • 【Python机器学习】NLP词中的数学——主题建模
    目录齐普夫定律相关度排序工具其他工具OkapiBM25在文档向量中,词计数是有用的,但是纯词计数,即使按照文档长度进行归一化处理,也不能告诉我们太多该词在当前文档相对于语料库中其他文档的重要度信息。如果能弄清楚这些信息,我们就能开始描述语料库中的文档了。假设我们有一......
  • Python 通过 COM 调用 ChemDraw 实践
    COMComponentObjectModel(COM)是由Microsoft提供的一种二进制接口技术,用于软件组件间的交互。它支持在不同编程语言、编程环境、进程和计算机之间以语言中立的方式使用对象。使用Python通过COM接口调用ChemDraw绘制分子及获取文档中的对象Python提供了一些常用的......
  • 爬虫案例2-爬取视频的三种方式之一:requests篇(1)
    (目录)前言本文写了一个爬取视频的案例,使用requests库爬取了好看视频的视频,并进行保存到本地。后续也会更新selenium篇和DrissionPage篇。当然,爬取图片肯定不止这三种方法,还有基于python的scrapy框架,基于node.js的express框架以及基于Java的webmagic框架等等。爬虫步骤确定网址......
  • 基于python+flask框架的某研发型企业知识管理系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在知识经济时代,企业核心竞争力越来越依赖于其知识资源的有效管理和利用。特别是对于研发型企业而言,知识是企业创新发展的源泉,是保持竞争优......
  • 基于python+flask框架的美食(风情)展示系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在全球化日益加深的今天,美食不仅是满足人们味蕾享受的重要方式,更成为了文化传播的重要载体。不同地区的美食承载着各自独特的历史、文化和......
  • 基于python+flask框架的教务管理系统设计与实现(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着教育信息化进程的加速,传统的手工教务管理方式已难以满足现代高等教育复杂多变的管理需求。教务管理作为学校日常运营的核心环节,涉及学......
  • 基于python+flask框架的完美上岸推免服务系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在高等教育日益普及的今天,研究生教育成为众多优秀本科生深造的首选途径。而推免(推荐免试)作为研究生招生的重要方式之一,其竞争日益激烈。学......
  • python使用 pyshark 库捕获数据包,附示例
    以下为您提供使用Python的pcap库捕获网络数据包的示例及相关信息:在Python中,可以使用pcap库来实现网络数据包的捕获。例如:importpcap#创建pcap实例pc=pcap.pcap()#设置过滤条件,例如捕获TCP端口为80的数据包pc.setfilter('tcpport80')#开始抓......
  • python使用 pcap 库捕获网络数据包,附示例
    以下为您提供使用Python的pcap库捕获网络数据包的示例及相关信息:在Python中,可以使用pcap库来实现网络数据包的捕获。例如:importpcap#创建pcap实例pc=pcap.pcap()#设置过滤条件,例如捕获TCP端口为80的数据包pc.setfilter('tcpport80')#开始抓......
  • 如何使用python抓包,附代码
    以下为您介绍多种使用Python进行抓包的方法及代码示例:使用Scapy库进行抓包:首先确保已经安装了Scapy库。如果没有安装,可以使用以下命令安装:pipinstallscapy。创建一个名为packet_sniffer.py的Python文件,并输入以下代码:fromscapy.allimport*defpacket_call......