本篇文章的源代码可以在后台回复爬虫来获取。
从今天开始,我们要开始学习Python爬虫来爬取网站上的数据。
首先,我们要知道什么是爬虫,爬虫又是怎么工作的。
爬虫又叫数据挖掘、网络机器人等,是用来帮助人们在网络上收集信息的。它可以让你非常快速的获取一些数据并整理。也就是说,它可以自动在网络上寻找你想要的信息并返回给你。
那么,爬虫是怎么工作的呢?
爬虫主要是以分析网页的源代码来获取信息。比如这段HTML网页代码:
<html>
<head>
<title>Hello World</title>
</head>
<body>
<p>Hello World</p>
</body>
</html>
使用爬虫,很容易就可以分析出它会在页面上显示Hello World。(当然,分析的其实是你而不是爬虫)
好了,了解了这些,我们开始吧。
首先我们要新建一个文件夹来储存我们写的代码。我们叫做小爬虫。

双击进到文件夹里面,右键Open Folder as Pycharm Project来在PyCharm中打开这个文件夹。

在目录中新建一个文件夹,叫做version1.0,里面放我们第一个爬虫代码。

在version1.0中新建一个名为Main的Python文件。

在里面首先导入Python的urllib库中的request文件。

首先我们要有一个网址来打开。我们找一个反爬机制弱的网站。
我们以百度的主页为例。(https://www.baidu.com/)

使用urllib库中的request文件中的urlopen函数来获取源代码。

输出一下。


嗯?这不是我们想要的内容啊?我们想要的是源代码啊?
原来,我们需要继续用decode函数和read函数才可以获得源代码。
尝试一下。

使用UTF-8解码。

我们发现,百度主页有反爬虫机制,我们只爬取到了一部分内容。
换一个网站。
我们使用百度贴吧。
https://tieba.baidu.com/


我的天哪,这怎么看啊?
其实这些内容都只是JavaScript的变量而已,划到最前面。

找了一个HTML代码整理工具整理了一下。
同样可以回复爬虫来获取整理工具的网址。
打开整理完的代码。

没有了CSS的支持,感觉像一堆乱码。
问题是,我们怎么样在一堆代码中找出有用的代码呢?
我们可以使用正则表达式。
假设我们要获取网页的标题,它用标签<title></title>括起来。我们需要知道这中间写的内容。
首先导入正则表达式,就是re。
首先定义一个变量,用于储存正则表达式的语句。

正则表达式中,你不知道的部分可以用.*?来表示。我们不知道<title></title>内的内容,于是写作.*?。
使用re模块的findall来在源代码中寻找<title></title>。
我们将urlopen函数的返回值赋给变量response。

输出一下findall的返回值。


如果不想要外面的<title></title>,可以将.*?用括号括起来。


好的,今天关于urllib的使用以及正则表达式的使用就结束了。想要源代码记得回复爬虫啊。
本文介绍如何使用Python进行网络数据抓取,包括使用urllib库获取网页源代码和利用正则表达式解析数据。
1359

被折叠的 条评论
为什么被折叠?



