前言
很多人一听到爬虫脑子里就想到黑客,顶级程序员等。但其实爬虫不难,今天,我就来教大家快速入门爬虫。
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
肝死我了,点个关注吧,感谢你能看到这。点赞过二十,出下一节。