爬虫是python最主要的应用领域之一,在了解了网站的结构之后,通过python就可以轻松实现数据的抓取,本次通过requests
以及re
库实现图片的抓取。
目标网址
简单源代码
1 | from requests import get |
代码及简单解析
导入要使用的开源库,re
为正则表达式需要的库1
2from requests import get
import re
- 选择要下载的页数(例如10),通过简单的字符串处理得到相- 应的(10个)网址赋值给url
- 然后通过
requests
库的get方法得到网站的内容并赋值给response - 接着运用正则表达式得到图片网址pic_url并将其添加到pic_urls
- 其中pic_urls包含的是所有图集的网址。(由于每个图集中还有数量不等的图片,所以下面将每个图集中图片的网址提取出来)
1 | pic_urls = [] |
同上对get请求得到的url进行正则提取得到每个图片的网址.
pictures = []
for url in pic_urls:
text = get(url).text
pictures.append(re.findall('<img src=\"(.*?)\"',text,re.S))
在浏览器中单独输入某个网址会发现图片较小,需要进行正则替换得到高清的图片(将”/t/“替换成”/pre/“).
list1 = []
for i in range(len(pic_urls)):
list1.extend(pictures[i])
for url in list1:
HD_pic.append(url.replace('/t/','/pre/'))
for url in HD_pic:
HD_p.append(url.replace('/m/' , '/pre/'))
HD_p
通过content得到二进制文件,再依次将其写入桌面新建的pic文件夹中
n = 0
for url in HD_pic:
n += 1
picture = get(url).content
with open('C:/Users/lee/Desktop/pic/%s.jpg' %n, 'wb') as f:
f.write(picture)
你可以在你指定的位置查看已经下载的图片。