html如何获取请求头变量的值。_教你如何编写第一个简单的爬虫

f08bed830b87fc225c33fb6aacba1a12.gif

很多人知道爬虫,也很想利用爬虫去爬取自己想要的数据,那么爬虫到底怎么用呢?今天就教大家编写一个简单的爬虫。

下面以爬取笔者的个人博客网站为例获取第一篇文章的标题名称,教大家学会一个简单的爬虫。

第一步:获取页面

#!/usr/bin/python# coding: utf-8import requests #引入包requestslink = "http://www.santostang.com/" #定义link为目标网页地址# 定义请求头的浏览器代理,伪装成浏览器headers = {'User-Agent' : 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'}r = requests.get(link, headers= headers) #请求网页print (r.text)  #r.text是获取的网页内容代码

上述代码就能获取博客首页的HTML代码,HTML是用来描述网页的一种语言,也就是说网页呈现的内容背后都是HTML代码。如果你对HTML不熟悉的话,可以先去学习一下,大概花上几个小时就可以了解HTML。

在上述代码中,首先import requests引入包requests,之后获取网页。

(1)首先定义link为目标网页地址。

(2)之后用headers来定义请求头的浏览器代理,进行伪装

(3)r是requests的Response回复对象,我们从中可以获取想要的信息。r.text是获取的网页内容代码。

运行上述代码得到的结果如图所示。

d9fd096772df0bfc89afd4c1195cf988.png

第二步:提取需要的数据

#!/usr/bin/python# coding: utf-8import requestsfrom bs4 import BeautifulSoup     #从bs4这个库中导入BeautifulSouplink = "http://www.santostang.com/"headers = {'User-Agent' : 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'} r = requests.get(link, headers= headers)soup = BeautifulSoup(r.text, "html.parser") #使用BeautifulSoup解析#找到第一篇文章标题,定位到class是"post-title"的h1元素,提取a,提取a里面的字符串,strip()去除左右空格title = soup.find("h1", class_="post-title").a.text.strip()print (title)

在获取整个页面的HTML代码后,我们需要从整个网页中提取第一篇文章的标题。

这里用到BeautifulSoup这个库对页面进行解析,BeautifulSoup将会在第4章进行详细讲解。首先需要导入这个库,然后把HTML代码转化为soup对象,接下来用soup.find(“h1”,class_=“post-title”).a.text.strip()得到第一篇文章的标题,并且打印出来

soup.find(“h1”,class_=“post-title”).a.text.strip()的意思是,找到第一篇文章标题,定位到class是"post-title"的h1元素,提取a元素,提取a元素里面的字符串,strip()去除左右空格。

对初学者来说,使用BeautifulSoup从网页中提取需要的数据更加简单易用。

那么,我们怎么从那么长的代码中准确找到标题的位置呢?

这里就要隆重介绍Chrome浏览器的“检查(审查元素)”功能了。下面介绍找到需要元素的步骤。

步骤01 使用Chrome浏览器打开博客首页www.santostang.com。右击网页页面,在弹出的快捷菜单中单击“检查”命令,如图2-17所示。

03db3e294dbd209130c2e3c407882d79.png

步骤02 出现如图2-18所示的审查元素页面。单击左上角的鼠标键按钮,然后在页面上单击想要的数据,下面的Elements会出现相应的code所在的地方,就定位到想要的元素了。

d3d4ef4b754d6afd449710cbf70b43d7.png

图2-18 审查元素页面

步骤03 在代码中找到标蓝色的地方,为echarts学习笔记(2)–同一页面多图表。我们可以用soup.find("h1",class_="post-title").a.text.strip()提取该博文的标题。

第三步:存储数据

import requestsfrom bs4 import BeautifulSoup   #从bs4这个库中导入BeautifulSouplink = "http://www.santostang.com/"headers = {'User-Agent' : 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'} r = requests.get(link, headers= headers)soup = BeautifulSoup(r.text, "html.parser") #使用BeautifulSoup解析title = soup.find("h1", class_="post-title").a.text.strip()print (title)# 打开一个空白的txt,然后使用f.write写入刚刚的字符串titlewith open('title_test.txt', "a+") as f:    f.write(title)

存储到本地的txt文件非常简单,在第二步的基础上加上2行代码就可以把这个字符串保存在text中,并存储到本地。txt文件地址应该和你的Python文件放在同一个文件夹。

返回文件夹,打开title.txt文件,其中的内容如图2-19所示。

93af9a42dff9213a4135a6fa573d278f.png

以上内容就是本节要介绍的如何编写一个简单的爬虫的步骤,想要学更多爬虫相关的内容,可以到这本书里查哦《Python网络爬虫从入门到实践(第2版)》

74c9ec427bcd6daff5fd17c93480874e.png

【End】

此书已加入到VIP会员卡,只要购买VIP会员卡即可免费阅读上百本电子书,这张VIP卡除了免费让你读书,还有更多的权益等你来领,往下↓拉

30f062cd7d8fbec03c259f9a7b40bdf3.png

推荐阅读  ☞@程序员,早知道假期这样你会干什么?☞区块链人才月均薪酬1.6W? ☞ 这是我见过最卡通的 Python 算法了,通俗易懂 ☞疫情当下,你是在家里躺着刷抖音?还是在做这些? ☞各大互联网大厂年终奖一览表,又是别人家的公司! ☞对于Python开发者,这本书绝对算得上此生必读之作 1e3d1b57454399a44b5d73677f254658.png 377bf880e5941ee052aa3e13ca1d35f4.png扫码加群 377bf880e5941ee052aa3e13ca1d35f4.png

码书福利群

这里有优惠,有大牛,有人生导师

8196da36a26c151f116672ce7b873348.gif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值