Back
Featured image of post 从零开始的爬虫教程(1)——从urllib开始

从零开始的爬虫教程(1)——从urllib开始

随着网络的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战。在这样的背景下,网络爬虫(Internet Bot)应运而生。在本课程中我将会较为系统地介绍简单Python爬虫的制作。我们从爬取著名硬件测评网站TechPowerUp的GPU数据库开始。

随着网络的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战。在这样的背景下,网络爬虫(Internet Bot)应运而生。在本课程中我将会较为系统地介绍简单Python爬虫的制作。我们从爬取著名硬件测评网站TechPowerUp的GPU数据库开始。

urllib是Python自带的网络标准库,地位相当于curl在Linux界。Request等其他网络请求库都是基于urllib的。如果想要系统地了解urllib,可以参考官方文档

首先引入urllib.request库 import urllib.request 注意这里引入的是urllib.request,在某些版本的urllib中被表示为urllib2,但是在最新的Python版本(3.8.1)中已经将urllib2重命名为urllib.request。另外,在某些Python版本中可以直接引入urllib但是其他一些版本不可以,因此兼容性考虑还是引入urllib.request。

我们只需要一条简短的语句就可以爬取TechPowerUp的首页。 html = urllib.request.urlopen(‘https://www.techpowerup.com’).read() 这将会返回一个bytes类型字符串,我们不妨将其转为str类型: html = html.decode() 然后我们就可以得到TechPowerUp首页内容了。

我们可以将其写到文件里: f = open(‘test.txt’, ‘w’) f.write(html) f.close() 或者进行某些处理。

我提前收集了一个TechPowerUp的GPU数据库2012-2020年所有NVIDIA显卡的详情页链接列表。 我们采用此代码进行爬取并将所有网页存放在./pages目录中,效果如下所示:

[[email protected] ~]# python3 1.py Connecting to http://www.techpowerup.com/gpu-specs/geforce-605-oem.c359

Connecting to http://www.techpowerup.com/gpu-specs/nvidia-gf119.g93

Connecting to http://www.techpowerup.com/gpu-specs/geforce-615.c2145

随后我们就可以在./pages文件夹里面看到爬取的网页了。

利用urllib制作爬虫的最最最基本的方法就是这样了,在下一篇博文中,我将会具体探讨某些优化方法和一些问题的解决方法。

参考链接:

  1. https://docs.python.org/3/library/urllib.html
  2. https://www.techpowerup.com
Built with Hugo
Theme Stack designed by Jimmy