Pythom爬虫之图虫小姐姐图片的爬取:
导入库:
import jsonpath
import time
import os
如果没有安装的话,可以通过:
pip install 库 # 安装
我们找到我们要爬取的网址:
进行如图
我们登录后面,我们定位到图片,通过再network里面找到,因为这个是Json数据,我们在json文件里面找,找到后面,我们找header里面找到
url=“https://tuchong.com/rest/tags/%E7%BE%8E%E5%A5%B3/posts”
我们在浏览器打开这个url,可以看到如图:
里面有我们要找得数据,下面我们就可以用jsonpath对这个网址进行数据得提取
因为里面是json数据,所以我们可以对通过jsonpath对我们想要得数据进行一个表单提交,获取json
创建提交表单:
parames = {'page': page, 'count': 20, 'order': 'weekly', 'before_timestamp': ''}
response = requests.get(url, params=parames).json()
print(response)#测试是否获取json数据了
对json数据里面得图片进行jsonpath定位:
img_urls=jsonpath.jsonpath(response,'$..cover_image_src')
print(img_urls)
依次提取图片:
for img_url in img_urls:
img_content=requests.get(img_url).content
数据得存储:
with open(r'./{}/{}.jpg'.format('图虫',index),'wb') as f:
f.write(img_content)
print(r'***正在下载: {}.jpg'.format(index))
实现不止对第一页数据得提取:
num = 10
index = 0
for page in range(1, num + 1):
下面是完整的代码:
import requests
import jsonpath
import time
import os
url = 'https://tuchong.com/rest/tags/%E7%BE%8E%E5%A5%B3/posts'
num = 10
index = 0
for page in range(1, num + 1):
time.sleep(5)
parames = {'page': page, 'count': 20, 'order': 'weekly', 'before_timestamp': ''}
response = requests.get(url, params=parames).json()
# print(response)
img_urls=jsonpath.jsonpath(response,'$..cover_image_src')
print(img_urls)
for img_url in img_urls:
img_content=requests.get(img_url).content
index+=1
if not os.path.exists(r'./{}'.format('图虫')):
os.mkdir(r'./{}'.format('图虫'))
with open(r'./{}/{}.jpg'.format('图虫',index),'wb') as f:
f.write(img_content)
print(r'***正在下载: {}.jpg'.format(index))
效果图: