本片文章的源代码同样可以回复爬虫来得到。
上一篇文章讲了Python爬虫获取网页源代码以及正则表达式寻找需要的内容,今天我们来学习怎么分析网页。
我们继续找到百度贴吧,搜索潍坊吧。
如果我们想要知道这个网页的标题是什么很简单,因为只有<title></title>标签可以定义网页的标题。我们只需要寻找这个标签就可以了。
具体关于HTML标签,可以参考前几篇文章《HTML基本标签》。
但是,如果我们想要寻找一段文字对应的代码,由于用于显示文字的标签有很多种,我们该怎么办呢?
别急。浏览器给开发人员以及所有用户开发了一个名为检查元素的工具,我们可以按下F12或者右键选择检查元素来打开它。
打开后是这个样子的。
你的鼠标放到哪一段代码上,页面上就会显示它对应的元素。所以叫检查元素。
假如我们想要知道哪一段代码用于显示“风筝之都 魅力潍坊”,你可以右键这一段文字,然后选择检查元素。
我们尝试使用爬虫来爬取下来。
首先复制这一段代码以及这个网页的网址。
打开PyCharm。将变量url的值更改为这个网页的网址。然后再将正则表达式语句替换成我们在检查元素中复制的代码。
记得把中间的内容换成(.*?),因为我们想要让程序自己去获得它。
运行。
太棒了,我们成功了!
接下来,我们让程序不断爬取这个页面,爬取这个页面后再自动翻页,最后获取页面上全部贴。
首先我们要找一找翻页的规律,就是说每一页网址的规律。
这是第一页,我们划到最下面,然后点击下一页。
只有两页?不过我们发现了网址的规律。
第一页网址:
https://tieba.baidu.com/f?kw=%E6%BD%8D%E5%9D%8A&ie=utf-8&cid=&tab=corearea&pn=0
其实后面pn=0在第一页是省略的,不过加上它也可以访问。
第二页网址:
https://tieba.baidu.com/f?kw=%E6%BD%8D%E5%9D%8A&ie=utf-8&cid=&tab=corearea&pn=50
我们发现,除了最后的pn每一页比上一页多50,别的网址没有变化。
我们定义一个用于获取网址的函数,名叫pageURL。
在此之前,我们先将除了导入包之外的所有内容去掉。
它的参数是页码,返回url。
然后定义一个用于获取页面源代码的函数source。
这个函数用于获取网页的源代码然后返回。
最后,我们先来分析页面。
我们想要获取页面上的所有贴。
随便点击一个检查元素。
它是由一个超链接组成的。先将源代码复制过来。
<a rel="noreferrer"
href="/p/6463652078"
title="【贴吧有爱】潍坊吧本地便民信息汇总贴"
target="_blank"
class="j_th_tit ">
【贴吧有爱】潍坊吧本地便民信息汇总贴
</a>
再随便找一个。
源代码:
<a rel="noreferrer"
href="/p/6504220987"
title="【潍坊资讯】必须严惩!"
target="_blank"
class="j_th_tit ">
【潍坊资讯】必须严惩!
</a>
我们发现,除了地址href属性以及title标题属性(这个标题是你鼠标放到超链接上的标题),就只有显示的内容不同了。
编写正则表达式。
先测试使用第一页测试一下。
运行。
真棒!我们继续让它可以自动翻页,然后使用for循环输出这段代码。
运行一下。
太棒了!注意这里显示的网址是一个相对网址,你需要在前面加上https://tieba.baidu.com/才可以访问。
我们让输出人性化一点。
运行。
哇,太棒了啊啊啊啊!尝试访问一个。
Python简直太棒了!这样,你就可以制作一个程序,在每天早上快速的给你这些贴,而且不用自己来,让它在9点钟自动执行就好了。
怎么样,学会了吗?
想要源代码记得回复爬虫啊!