import requests
import re,os
import json
from urllib import request
#定义一个函数
def tout(url):
#定义头部信息
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'
}
response = requests.get(url)
#直接用json方法转成字典类型
res_dict = response.json()
# print(type(res_dict))
#设置一个文件夹用来存放爬取的照片
if not os.path.exists('downloads'):
os.mkdir('downloads')
#循环取出详情页的url
for v in res_dict['data']:
if 'article_url' in v :
s = v['article_url']
response = requests.get(s,headers=headers)
res_str = response.text
sp = r'JSON\.parse\((.*)\),'
#利用正则的方法匹配出图片路径
c_res = re.search(sp,res_str)
if c_res:
#这儿两次转字典,第一次是去掉最外面的双引号,第二次是转为字典类型
res = json.loads(c_res.group(1))
res_dict = json.loads(res)
urlss = res_dict['sub_images']
#循环遍历出图片的路径
for v in urlss:
urls = v['url']
# print(urls)
#定义文件名
filename = urls.split('/')[-1] + '.jpg'
print(filename)
#文件保存路径
paths = 'downloads/'+filename
#下载图片的方法
request.urlretrieve(urls,paths)
#定义一个循环,可以自己DIY循环的次数
i = 0
while i<21:
url = 'https://www.toutiao.com/search_content/?offset='+str(i)+'&format=json&keyword=%E8%A1%97%E6%8B%8D&autoload=true&count=20&cur_tab=1&from=search_tab'
#调用函数
tout(url)
i += 20
今日头条的街拍图片的简单自动爬取
最新推荐文章于 2024-08-15 02:43:19 发布