Python 爬虫实战:从基础抓取到多线程下载优化
一、目标站点信息
本文以彼岸桌面壁纸网站为例,演示 Python 爬虫的基本流程。
二、目标站点分析
(1) 构造页面的 URL 列表
我们需要爬取网站上给定页数的图片,首先需要观察各个页面链接之间的关系,进而构造出需要爬取页面的 URL 列表。
- 第一页的链接:
http://www.netbian.com/ - 第二页的链接:
http://www.netbian.com/index_2.htm
可以看出,从第二页开始之后的页面链接只是后面的数字不同。我们可以编写代码动态获取页面的 URL 列表。
# 页面链接的初始化列表
page_links_list = ['http://www.netbian.com/']
# 获取爬取的页数和页面链接
pages = int(input('请输入你想爬取的页数:'))
if pages > 1:
for page in range(2, pages + 1):
url = 'http://www.netbian.com/index_' + str(page) + '.htm'
page_links_list.append(url)
else:
pass
print(page_links_list)
运行示例输出:
请输入你想爬取的页数:5
['http://www.netbian.com/', 'http://www.netbian.com/index_2.htm',
'http://www.netbian.com/index_3.htm', 'http://www.netbian.com/index_4.htm',
'http://www.netbian.com/index_5.htm']
(2) 获取一个页面中所有的图片链接
我们已经获取了所有页面的链接,但还需要获取每张图片的链接。我们以第一页为例,获取每张图片的链接,其他页面逻辑类似。
在浏览器中右键 -> 查看元素,使用开发者工具定位图片标签。每个页面通常有 18 张图片。通过 CSS 选择器 div.list li a img 可以定位到这些图片标签,img 标签的 src 属性即为图片链接。


